nyoj 86 找球号(一)

原题链接 http://acm.nyist.net/JudgeOnline/problem.php?pid=86

方法一:先用algorithm中的sort函数,排序后利用二分查找即可。

方法二:用stl中的set,这道题不用考虑输入数据是否有重复,所以就不用使用multiset,利用set成员函数count()判断该数是否存在集合中就可以了,简单又容易理解。

这里有个坑,额,或许只有我这么傻。测试数据只用一组,我却加了外循环,一直TLE。

代码如下

#include
#include
using namespace std;
int m,n,tmp;
setv;
int main()
{
    scanf("%d %d",&m,&n);
    while(m--)
    {
        scanf("%d",&tmp);
        v.insert(tmp);
    }
    while(n--)
    {
        scanf("%d",&tmp);
        if(v.count(tmp))
        {
            printf("YES\n");
        }else{
            printf("NO\n");
        }
    }
    return 0;
}

你可能感兴趣的:(STL)