1 条题解

  • 0
    @ 2026-5-31 7:36:55

    不会的再来看!!

    #include<bits/stdc++.h>
    using namespace std;
    int a[100005];
    int diyigedayudengyu(int n,int x){
    	int l=1,r=n;
    	int ans=-1; 
    	while(l<=r){
    		int mid=(l+r)/2;
    		if(a[mid]==x){
    			r=mid-1;
    			ans=mid;
    		}
    		else if(a[mid]<x){
    			l=mid+1;
    		}
    		else{
    			r=mid-1;
    			ans=mid;
    		}
    	}
    	return ans;
    }
    int zuihouyigexiaoyudengyu(int n,int x){
    	int l=1,r=n;
    	int ans=-1; 
    	while(l<=r){
    		int mid=(l+r)/2;
    		if(a[mid]==x){
    			l=mid+1;
    			ans=mid;
    		}
    		else if(a[mid]<x){
    			l=mid+1;
    			ans=mid;
    		}
    		else{
    			r=mid-1;
    		}
    	}
    	return ans;
    }
    int main(){
    	int n,q;
    	cin>>n;
    	for(int i=1;i<=n;i++){
    		cin>>a[i];
    	} 
    	sort(a+1,a+n+1);
    	cin>>q;
    	int s,t;
    	for(int i=1;i<=q;i++){
    		cin>>s>>t;
    		if(s>t){
    			swap(s,t);
    		}
    		int p1=diyigedayudengyu(n,s);
    		int p2=zuihouyigexiaoyudengyu(n,t);
    		if(p1!=-1&&p2!=-1){
    			cout<<p2-p1+1<<endl;
    		}
    		else{
    			cout<<0<<endl;
    		}
    	}
    	return 0;
    }
    
    • 1

    信息

    ID
    5595
    时间
    1000ms
    内存
    256MiB
    难度
    6
    标签
    (无)
    递交数
    127
    已通过
    38
    上传者