题解 | 【模板】整数域二分

【模板】整数域二分

https://www.nowcoder.com/practice/d483ab6bf19245518730a75c6ea108ae

二分一下就行了

void solve(){
    int n,q;
    cin>>n>>q;
    int a[n+1];
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    sort(a+1,a+n+1);
    for(int i=1;i<=q;i++){
        int x,y;
        cin>>x>>y;
        int L=1,R=n;
        int p2=-1,p1=-1;
        while(L<=R){
            int mid=(L+R)/2;
            if(a[mid]<=y){
                p2=mid;
                L=mid+1;
            }else{
                R=mid-1;
            }
        }
        L=1,R=n;
        while(L<=R){
            int mid=(L+R)/2;
            if(a[mid]>=x){
                p1=mid;
                R=mid-1;
            }else{
                L=mid+1;
            }
        }
        if(p1==-1||p2==-1){
            cout<<0<<'\n';
        }else{
            cout<<p2-p1+1<<'\n';
        }
    }
}

全部评论

相关推荐

秋招投简历提醒助手:个人经验是,一般面二十场左右就会进入侃侃而谈阶段。我今年七月末的时候开始的第一次面试,都是很多不会,回复很慢。后面慢慢迭代,到九月中的时候基本上面啥说啥,很放松的状态
远程面试的尴尬瞬间
点赞 评论 收藏
分享
10-29 18:20
济南大学 Java
用微笑面对困难:他不是人事吗,怎么净特么不干人事
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务