瑶一瑶摇一摇 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 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥170 如图所示配置eNSP
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果