2 条题解

  • 1
    @ 2025-4-22 17:28:37
    #include<bits/stdc++.h>
    using namespace std;
    int main(){
    	int n,m,a[100001],b[100001],c[100005];
    	cin>>n>>m;
    	for(int i=1;i<=n;i++){
    		cin>>a[i];
    	}
    	for(int i=1;i<=m;i++){
    		cin>>b[i];
    		int l=1,r=n,ans=0;	
    	while(l<=r){
    		int mid=(l+r)/2;
    		if(a[mid]==b[i]){
    			ans=mid;
    			l=mid+1;
    		}
    		else if(a[mid]>b[i]){
    			r=mid-1;
    		}
    		else if(a[mid]<b[i]){
    			l=mid+1;
    		}
    	}
    		if(ans==0){
    			c[i]=-1;
    		}
    		else{
    			c[i]=ans;
    		}
    	}
    	for(int i=1;i<=m;i++){
    		cout<<c[i]<<endl;
    	}
    	
    
    	
    	
    	return 0;
    }
    //废物小鸟
    
    
    
    
    • 0
      @ 2024-12-17 16:32:20
      #include<bits/stdc++.h>
      using namespace std;
      int main(){
      	int n,m,a[100001],b[100001],c[100005];
      	cin>>n>>m;
      	for(int i=1;i<=n;i++){
      		cin>>a[i];
      	}
      	for(int i=1;i<=m;i++){
      		cin>>b[i];
      		int l=1,r=n,ans=0;	
      	while(l<=r){
      		int mid=(l+r)/2;
      		if(a[mid]==b[i]){
      			ans=mid;
      			l=mid+1;
      		}
      		else if(a[mid]>b[i]){
      			r=mid-1;
      		}
      		else if(a[mid]<b[i]){
      			l=mid+1;
      		}
      	}
      		if(ans==0){
      			c[i]=-1;
      		}
      		else{
      			c[i]=ans;
      		}
      	}
      	for(int i=1;i<=m;i++){
      		cout<<c[i]<<endl;
      	}
      	
      
      	
      	
      	return 0;
      }
      小鸟
      
      
      • 1

      信息

      ID
      3099
      时间
      1000ms
      内存
      256MiB
      难度
      2
      标签
      递交数
      8
      已通过
      4
      上传者