差分与前缀和

在处理区间问题时,差分与前缀和是一个非常有力的工具,一般而言,使用差分与前缀和要求维护信息有可减性,比如加法,而 max 等不能使用
对于不好维护的区间修改问题,可以转化成两端点差分值的单点修改
对于不好维护的区间查询问题,可以转化为两端点的前缀和的单点查询
总之,使用的宗旨是让维护信息更少,更容易使用

另外,在有些构造题中操作的本质很可能是前缀和或差分值的不改变,需要仔细观察


差分

对于序列上的差分,需要注意的是比如区间开根和异或等也都是可以维护的
另外,一个很好用的技巧是对等差数列的维护,相当于是对于差分数组的差分,维护两个前缀,如果辅以数据结构则是区间加与区间求和,比如 这题这题

P5607 [Ynoi2013] 无力回天 NOI2017
这个题就是一个很明显的用差分优化区间修改问题了


树上差分道理也是一样,处理静态序列操作,注意是差分点还是差分边,对于 lca 处是否 1 进行判断


P3943 星空

由于操作的是区间,那么可以先对两个串进行差分,那么一次操作变成了两个单点修改
可以跑一个背包,dp 出修改相距 i 的两个点需要多少步
之后状压即可


关于构造

P4552 [Poetize6] IncDec Sequence

区间的加减操作转化为差分数组上的一个 +1,另一个 1,发现这样让操作变得简单起来


游戏

比如这个题,发现操作的本质是前缀和的交换,那么看前缀和集合是否相等即可

posted @   y_cx  阅读(64)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效
历史上的今天:
2021-08-07 noip模拟32
点击右上角即可分享
微信分享提示