标签:
6 4 23 34 46 768 343 343 2 4 23 343
NO NO YES YES
思路:普通查找肯定会爆
Code:
/*二分法*/ #include <stdio.h> #include <algorithm> using namespace std; int a[1000000]; bool BinSearch(int *a,int m,int ans) { int low=0,high=m-1,mid; while(low<=high) { mid=(low+high)/2; if(ans==a[mid]) return true; if(ans<a[mid]) high=mid-1; else low=mid+1; } return false; } int main() { int m,n,ans,i; scanf("%d%d",&m,&n); for(i=0;i<m;i++) scanf("%d",&a[i]); sort(a,a+m); //注意二分的话这里要排序,开始忘了wa while(n--) { scanf("%d",&ans); if(BinSearch(a,m,ans)) printf("YES\n"); else printf("NO\n"); } return 0; } #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; }
标签:
原文地址:http://blog.csdn.net/sxx312/article/details/51334245