3 条题解

  • 1
    @ 2025-10-15 20:49:42

    #include <stdio.h> int main(){ int n,s[1000001]; scanf("%d",&n); for(int i=1;i<=n;i++) { scanf("%d",&s[i]); }

    int m,a;
    scanf("%d",&m);
    while(m--){
        scanf("%d",&a);
        int l=0,r=n+1;
        while(l+1!=r){
            int mid=(l+r)/2;
            if(s[mid]<a){
                l=mid;
            }
            else if(s[mid]>=a){
                r=mid;
            }
    
        }
        if(s[r]==a){
            printf("YES\n");
        }
        else{printf("NO\n");}
    }
    return 0;
    

    }

    • 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会快一些

    • 0
      @ 2024-10-16 16:47:23

      #include<stdio.h>

      int main(){ int n; scanf("%d",&n); int ai[n]; for(int i=0;i<n;i++){ scanf("%d",&ai[i]); } int m; scanf("%d",&m); while(m--){ int b; scanf("%d",&b); int l,r; l = 0; r = n-1; while(l<r){ int mid = (l+r)/2; if(ai[mid]>=b){ r = mid; }else{ l = mid+1; } } if(ai[l]!=b){ printf("NO\n"); }else{ printf("YES\n"); } } return 0; }

      • 1

      信息

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