牛客每日一题(2026.4.30) 整数域二分

题目


AC代码

cpp 复制代码
#include<bits/stdc++.h> 
#define ll long long
using namespace std;

ll a[200005];

void solve()
{
    ll n,q;
    cin>>n>>q;
    for(ll i=1;i<=n;i++)
    {
        cin>>a[i];
    }
    sort(a+1,a+n+1);
    while(q--)
    {
        ll l,r;
        cin>>l>>r;

        if(l>r)
        {
            cout<<0<<endl;
            continue;
        }

        ll ans;
        ll lpos=0,rpos=n+1,mid;
        while(lpos+1!=rpos)
        {
            mid=lpos+(rpos-lpos>>1);

            if(a[mid]<l)lpos=mid;
            else rpos=mid;
        }
        ans=rpos;  // 左起点下标

        rpos=n+1;
        while(lpos+1!=rpos)
        {
            mid=lpos+(rpos-lpos>>1);
            
            if(a[mid]<=r)lpos=mid;
            else rpos=mid;
        }
        ans=lpos-ans+1;
        cout<<ans<<endl;
    }

}

int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    solve();
    return 0;
}

个人见解

今天的题相对于昨天还是比较简单的,主要就是考察二分的使用,模板题。

相关推荐
荆棘鸟智能1 小时前
城市感知设备怎么统一接入?从多协议网关到设备模型的中间件架构设计
人工智能·算法·边缘计算
无敌贵点大王1 小时前
RTThread学习记录11——RT-Thread 设备模型吃透:UART/ADC/PWM/PIN 到底有什么区别?
c语言·stm32·学习·链表
Logic1012 小时前
C语言/数据结构位运算题解:异或XOR找出时尚聚会中的“独特颜色“——只出现一次的数字
c语言·数据结构·数组·位运算·时间复杂度·算法题·异或性质
知识分享小能手4 小时前
C++ 学习教程,从入门到精通,C++ 入门知识 — 完整知识点(1)
开发语言·c++·学习
qq_199886874 小时前
第8板块·第2节:统一内存的高级特性与性能调优
c++·人工智能·gpu算力·cuda
INGNIGHT5 小时前
270 · 电话号码的字母组合II(Trie)
linux·算法
2401_839080545 小时前
C++常见八股
数据结构·c++·算法
qq_199886876 小时前
第6板块 第2节 CUDA运行时API与驱动API 核心笔记
c++·人工智能·gpu算力
青山是哪个青山6 小时前
LeetCode 188:买卖股票的最佳时机 IV
算法
mikuyyds6 小时前
geo-toolbox 插件算法解析:RUSLE 与 MUSLE 的工程化落地
算法·rust·gis