码迷,mamicode.com
首页 > 其他好文 > 详细

nyoj86 找球号(一) set容器和二分 两种解法

时间:2015-04-23 17:37:18      阅读:401      评论:0      收藏:0      [点我收藏+]

标签:nyoj86   nyoj 86   

两种方法 set容器和二分,不懂set容器看我这一篇文章 http://blog.csdn.net/su20145104009/article/details/44562659

 
#include <stdio.h>//set容器查找
#include <set>
using namespace std;
int main()
{
	int n,m,x,i;
	set<int>s;
	scanf("%d %d",&m,&n);
	for(i=0;i<m;i++)
		scanf("%d",&x),s.insert(x);
    for(i=0;i<n;i++)
	{
		scanf("%d",&x);
		if(s.find(x)!=s.end())
			printf("YES\n");
		else
			printf("NO\n");
	}
	return 0;
}        

 
#include <stdio.h>//二分查找
#include <string.h>
#include <algorithm>
using namespace std;
long a[1000005];
void search(long x,long right)
{
	long mid,left=0,flag=0;
	while(left<=right)
	{
		mid=(left+right)/2;
		if(a[mid]<x)
			left=mid+1;
		if(a[mid]>x)
			right=mid-1;
		if(a[mid]==x)
		{
			flag=1;
			printf("YES\n");
			break;
		}
	}
	if(!flag)
		printf("NO\n");
}
int main()
{
	long m,n,i,num;
	memset(a,0,sizeof(a));
	scanf("%ld %ld",&m,&n);
	for(i=0;i<m;i++)
		scanf("%ld",&a[i]);
	sort(a,a+m);
	for(i=0;i<n;i++)
	{
		scanf("%ld",&num);
		search(num,m-1);
	}
	return 0;
}        



nyoj86 找球号(一) set容器和二分 两种解法

标签:nyoj86   nyoj 86   

原文地址:http://blog.csdn.net/su20145104009/article/details/45223123

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!