6 4 23 34 46 768 343 343 2 4 23 343
NO NO YES YES
二分搜索技术
#include<iostream>
#include<cmath>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<string>
using
namespace std;
int a[1000005],b[100005];
int main(int argc, char* argv[])
{
int
m,n,i,j,left,right,mid,flag;
scanf("%d%d",&m,&n);
for(j=0;j<m;j++)
scanf("%d",&a[j]);
for(i=0;i<n;i++)
scanf("%d",&b[i]);
sort(a,a+m);
for(i=0;i<n;i++)
{
left=0;
right=m-1;
flag=0;
while(left<=right)
{
mid=(left+right)/2;
if(b[i]==a[mid])
{flag=1; printf("YES\n"); break;}
if(b[i]>a[mid])
left=mid+1;
else right=mid-1;
}
if(flag==0)
printf("NO\n");
}
return 0;
}
原文:http://www.cnblogs.com/52Cyan/p/3692002.html