查找元素
Time Limit : 3000/1000ms (Java/Other) Memory Limit : 65535/32768K (Java/Other)
Total Submission(s) : 82 Accepted Submission(s) : 41
Font: Times New Roman | Verdana | Georgia
Font Size: ← →
Problem Description
在给出的数列中(数列中没有重复元素),判断某个元素存在与否。
Input
输入的第1行为示例个数T,对于每个示例第1行为n(n<1000000),表示输入数列中元素的个数,下面1行为n个元素,第3行为查询元素的个数m(m<15000),下面m行为每个需要查询的元素。
Output
输出每个需要查询元素的查询结果,如果查找到输出"Yes",否则输出"No"。
Sample Input
1 5 1 4 5 2 3 2 3 7
Sample Output
Yes No
#include<algorithm> #include<stdio.h> #include <iostream> using namespace std; int a[1000005]; int chazhao (int n,int x) { int low=0,high=n-1,mid; while(low<=high) { mid=(low+high)/2; if (a[mid]==x) { return 1; } else if(a[mid]<x) low=mid+1; else high=mid-1; } return 0; } int main() { int m,n,t,x,i; scanf("%d",&m); while (m--) { scanf("%d",&n); for (i=0; i<n; i++) { scanf("%d",&a[i]); } sort(a,a+n); scanf("%d",&t); for(i=0;i<t;i++) { scanf("%d",&x); if (chazhao(n,x)) printf("Yes\n"); else printf("No\n"); } } return 0; }