**题目:
有一段长度为n的序列,q次查找,每次查找输入一个值x,需要你判断序列中是否存在值等于x的元素,若存在,请输出Yes,否则输出No,保证序列中每一个元素都是唯一的。
输入:
13 2
2 5 8 10 15 25 35 45 50 60 70 80 90
10
18
输出:
Yes
No
分析这道题很简单:不过多介绍
源码:**
include
using namespace std;
int main(void)
{
int n,q; cin>>n>>q; int arr[n]; for(int i=0;i<n;i++) { cin>>arr[i]; } for(int j=0;j<q;j++) { int as,a=0,b=n-1,md; cin>>as; while(as>arr[0]&&as<arr[n-1]&&b-a>=0) { md=arr[(a+b)/2]; if(as==md) { a=-1; cout<<"Yes"<<endl; break; }else if(as>md) { a=(a+b)/2+1; }else if(as<md) { b=(a+b)/2-1; } } if(a!=-1) { cout<<"No"<<endl; } } return 0;
}