区间转化、扫描线

例题:

D-小红的最佳区间_牛客周赛 Round 143(重现赛)

代码如下:

cpp 复制代码
#include <bits/stdc++.h>
using namespace std;
#define endl "\n"
#define int  long long

void solve() {
    int n,k;
    cin>>n>>k;
    vector<pair<int,int>> a;
    for (int i=0;i<n;i++) {
        //每个合法L的取值范围是[l-k,r],所以直接将生成2个事件
        //(l-k,+1)和(r+1,-1)
        //那么原问题变为:找一个点 L,被最多的区间 [lᵢ−k, rᵢ] 覆盖 → 覆盖数最大值就是答案。
        int l,r;
        cin>>l>>r;
        int L=l-k;
        int R=r+1;
        a.push_back({L,1});
        a.push_back({R,-1});
    }
    sort(a.begin(),a.end());
    int ans=0;//记录最大答案
    int now=0;//记录当前点的累计覆盖数
    for (auto it=a.begin();it!=a.end();it++) {
        now+=it->second;
        ans=max(ans,now);
    }
    cout<<ans<<endl;
}

signed main()
{
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int T=1;
    //cin >> T;
    while (T--)
        solve();
    return 0;
}
相关推荐
To_OC5 小时前
LC 994 腐烂的橘子:人人都说是 BFS 入门题,我却写了三遍才过
javascript·算法·leetcode
金銀銅鐵8 小时前
[Python] 扩展欧几里得算法
python·数学·算法
To_OC10 小时前
LC 200 岛屿数量:经典 DFS 入门题,我第一次写居然连方向都搞错了
javascript·算法·leetcode
To_OC1 天前
LC 128 最长连续序列:别上来就排序,O (n) 解法才是这题的灵魂
javascript·算法·leetcode
05Kevin2 天前
lk每日冒险题--数据结构6.27
算法
To_OC2 天前
从一次栈溢出报错说起,我把递归彻底扒明白了
javascript·算法·程序员
千纸鹤安安2 天前
千问Qwen-AgentWorld来了:一个语言模型搞定七大Agent场景,GPT-5.4都输了
算法
七牛开发者2 天前
MCP 到底是什么?为什么 Agent 都想接上它
算法·aigc·agent