nyoj 86 找球号(一)

原题链接 http://acm.nyist.net/JudgeOnline/problem.php?pid=86
方法一:先用algorithm中的sort函数,排序后利用二分查找即可。
方法二:用stl中的set,这道题不用考虑输入数据是否有重复,所以就不用使用multiset,利用set成员函数count()判断该数是否存在集合中就可以了,简单又容易理解。
这里有个坑,额,或许只有我这么傻。测试数据只用一组,我却加了外循环,一直TLE。
代码如下:
【nyoj 86 找球号(一)】#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;
}

    推荐阅读