前缀和与差分
该随笔为基础内容,想要了解拓展知识可以点 这里
---算法简介
问题一:有 个数,现在有 个操作,分为两种类型:
1. 每一次要求将第 个数加上 ;
2. 查询第 个数字的值。
。
这一题其实用一个数组就可以维护。
问题二:有 个数,并且有 次操作,每一次操作要求查询第 个数到第 个数的和。
。
如果用暴力或带 的算法做那么肯定是会 TLE 的,需要设计一个线性复杂度的算法。
令
那么第 到第 个数的和就是 。
而 ,所以 到 可以在 的复杂度递推出来。
对于每次询问,便可 求出了。
问题三:有已赋值的 个数,现在有 个指令,第 个指令要求将第 个数到第 个数的每个数加上 ,最后求所有数的值。
,。
我们也可以用与前缀和类似的方法解决此题。
令
然后就会发现,对于 的正整数 ,均有 。
而当区间 被加上相同的数时, 数组中只有 和 发生了改变。
所以每次让区间 每个数加上 后,把 加上 ,减去 ,最后使用前缀和时这个 就可以覆盖整个区间而不重不漏。、
复杂度仍为 。
该随笔为基础内容,想要了解拓展知识可以点 这里
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话