2 条题解

  • 1
    @ 2023-12-25 20:36:32
    #include <iostream>
    
    using namespace std;
    const int N=1000010;
    int a[N];
    
    int main(){
    	std::ios::sync_with_stdio(false);
    	cin.tie(0);
    	cout.tie(0);
    	int n;
    	cin >> n;
    	for(int i=0;i<n;i++){
    		cin >> a[i]; 
    	} 
    	int q;
    	cin >> q;
    	while(q--){
    	int l=0,r=n-1,x;          //l为左范围 r为右范围
    	cin >> x;
    	while(l<r){
    		int mid=(l+r)/2;      //mid为中点
    		if(a[mid]>=x){        //x在mid左边(包含mid)
    			r=mid;            //让右端=mid
    		}
    		else{                 //x在mid右边(不包含mid)
    			l=mid+1;          //让左端等于mid+1
    		}
    	}
    	if(a[l]!=x){              //没找到
    		cout << "NO" << '\n';
    	}
    	else{
    		cout << "YES" << '\n';
    	}
    	}
    	
    	return 0;
    }
    
    • @ 2023-12-25 21:04:53

      用'\n'替换endl会快一些

信息

ID
250
时间
100ms
内存
256MiB
难度
7
标签
(无)
递交数
743
已通过
153
上传者