差分与前缀和
在处理区间问题时,差分与前缀和是一个非常有力的工具,一般而言,使用差分与前缀和要求维护信息有可减性,比如加法,而 等不能使用
对于不好维护的区间修改问题,可以转化成两端点差分值的单点修改
对于不好维护的区间查询问题,可以转化为两端点的前缀和的单点查询
总之,使用的宗旨是让维护信息更少,更容易使用
另外,在有些构造题中操作的本质很可能是前缀和或差分值的不改变,需要仔细观察
差分
对于序列上的差分,需要注意的是比如区间开根和异或等也都是可以维护的
另外,一个很好用的技巧是对等差数列的维护,相当于是对于差分数组的差分,维护两个前缀,如果辅以数据结构则是区间加与区间求和,比如 这题 和 这题
P5607 [Ynoi2013] 无力回天 NOI2017
这个题就是一个很明显的用差分优化区间修改问题了
树上差分道理也是一样,处理静态序列操作,注意是差分点还是差分边,对于 处是否 进行判断
由于操作的是区间,那么可以先对两个串进行差分,那么一次操作变成了两个单点修改
可以跑一个背包, 出修改相距 的两个点需要多少步
之后状压即可
关于构造
P4552 [Poetize6] IncDec Sequence
区间的加减操作转化为差分数组上的一个 ,另一个 ,发现这样让操作变得简单起来
比如这个题,发现操作的本质是前缀和的交换,那么看前缀和集合是否相等即可
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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