2 条题解
-
1
#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; }
信息
- ID
- 250
- 时间
- 100ms
- 内存
- 256MiB
- 难度
- 7
- 标签
- (无)
- 递交数
- 743
- 已通过
- 153
- 上传者