5 条题解

  • 2
    @ 2024-7-27 11:24:24
    #include<bits/stdc++.h>
    using namespace std; 
    const int maxn=1e6+10;
    int a[maxn],n,m,q;
    int main(){
    	cin>>n;
    	for(int i=1;i<=n;i++) cin>>a[i];
    	cin>>m;
    	for(int i=1;i<=m;i++){
    		cin>>q;
    		int ans=upper_bound(a+1,a+n+1,q)-a;
    		if(q!=a[ans-1]) cout<<"-1"<<" ";
    		else cout<<ans-1<<" ";           
    	}
    	return 0;
    }
    
    • 2
      @ 2024-7-27 11:22:55

      #include<bits/stdc++.h> using namespace std; const int maxn=1000; int a[maxn],n,s,m; int main(){ cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; } cin>>m; for(int i=1;i<=m;i++){ cin>>s; int ans=upper_bound(a+1,a+n+1,s)-a-1; if(s==a[ans]){ cout<<ans<<" "; } else cout<<"-1"<<" "; } return 0; }

      • 2
        @ 2024-7-27 10:01:58
        
        ```#include<bits/stdc++.h>
        using namespace std;
        const int maxn=1e6+10;
        int a[maxn],n,m,q;
        
        int find(int x){
        	int l=1,r=n;
        	while(l<r){
        		int mid=(l+r+1)/2;
        		if(a[mid]<=x){
        			l=mid;
        		} 
        		else r=mid-1;
        	}
        	if(a[l]==x) return l;
        	else return -1;
        }
        
        int main(){
        	scanf("%d",&n);
        	for(int i=1;i<=n;i++) cin>>a[i];
        	scanf("%d",&m);
        	for(int i=1;i<=m;i++){
        		cin>>q;
        		int ans=find(q);
        		printf("%d ",ans);
        	}
        }
        • 1
          @ 2024-7-26 14:51:21
          #include<bits/stdc++.h>
          using namespace std;
          const int maxn=1e6+10;
          int a[maxn],n,m,q;
          
          int find(int x){
          	int l=1,r=n;
          	while(l<r){
          		int mid=(l+r+1)/2;
          		if(a[mid]<=x){
          			l=mid;
          		} 
          		else r=mid-1;
          	}
          	if(a[l]==x) return l;
          	else return -1;
          }
          
          int main(){
          	scanf("%d",&n);
          	for(int i=1;i<=n;i++) cin>>a[i];
          	scanf("%d",&m);
          	for(int i=1;i<=m;i++){
          		cin>>q;
          		int ans=find(q);
          		printf("%d ",ans);
          	}
          } 
          
          • 0
            @ 2024-7-27 11:25:02

            #include<bits/stdc++.h> using namespace std; const int maxn=1e6+10; int a[maxn],n,m,q; int main(){ cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; } cin>>m; for(int i=1;i<=m;i++){ cin>>q; int ans=upper_bound(a+1,a+n+1,q)-a; if(q!=a[ans-1]) { cout<<"-1"<<" "; }else{ cout<<ans-1<<" "; }

            }
            return 0;
            

            }

            • 1

            信息

            ID
            1147
            时间
            1000ms
            内存
            64MiB
            难度
            5
            标签
            递交数
            236
            已通过
            88
            上传者