瑶一瑶摇一摇 2022-08-28 16:48 采纳率: 50%
浏览 78
已结题

这是ccf2022年3月份的第二题出行计划,用到了差分算法,我不明白用差分算法的原理是什么,虽然我已经了解了差分算法却依然不理解代码,我把一个博主的满分代码放在下面了

这是ccf2022年3月份的第二题出行计划,用到了差分算法,我不明白用差分算法的原理是什么,虽然我已经了解了差分算法却依然看不理解代码,我把一个博主的满分代码放在下面了,希望有人可以给我讲讲



#include<iostream>
#include<algorithm>
using namespace std;
const int N = 4e5+10;
int n,m,k;
int b[N];//差分数组
//令l~r之间的数都+c
void insert(int l,int r,int c)
{
    b[l]+=c;
    b[r+1]-=c;
}
int main()
{
    cin>>n>>m>>k;
    for(int i=1;i<=n;i++)
    {
        int x,y;
        cin>>x>>y;
        int left = x-y+1;//定义左边界
        left = left>0?left:1;
        int right = x;//定义右边界
        insert(left,right,1);
    }
    //前缀和操作,得到各个点的数值
    for(int i=1;i<=N;i++)
    {
        b[i] = b[i-1]+b[i];
    }
    while(m--)
    {
        int x;
        cin>>x;
        cout<<b[x+k]<<endl;//直接得到x+k处的数值
    }
    return 0;
}
————————————————
版权声明:本文为CSDN博主「只须一笑不须愁X」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_53641110/article/details/124031629
  • 写回答

3条回答 默认 最新

问题事件

  • 系统已结题 9月6日
  • 已采纳回答 8月29日
  • 创建了问题 8月28日

悬赏问题

  • ¥15 救!ENVI5.6深度学习初始化模型报错怎么办?
  • ¥30 eclipse开启服务后,网页无法打开
  • ¥30 雷达辐射源信号参考模型
  • ¥15 html+css+js如何实现这样子的效果?
  • ¥15 STM32单片机自主设计
  • ¥15 如何在node.js中或者java中给wav格式的音频编码成sil格式呢
  • ¥15 不小心不正规的开发公司导致不给我们y码,
  • ¥15 我的代码无法在vc++中运行呀,错误很多
  • ¥50 求一个win系统下运行的可自动抓取arm64架构deb安装包和其依赖包的软件。
  • ¥60 fail to initialize keyboard hotkeys through kernel.0000000000