“在有限序列的阿贝尔群范围内,差分数组与前缀和互为变换:差分取相邻值之差,前缀累积恢复原序列。 只在这一共同范围内成立;一般幺半群前缀没有逆元,因而没有对应的无条件差分变换。”
形式陈述 ​
对序列
对区间
直觉
差分数组存储相邻前缀状态之间的增量,而不是每个位置的绝对值。区间统一加上
例子与边界
原数组
差分适合离线积累大量区间更新,并在线性时间统一恢复,却不能在每次更新后立即回答任意区间查询,除非再配合 Fenwick 树或线段树。普通差分要求更新是可组合、可逆的加法作用;在一般交换幺半群上只有前缀聚合而未必存在差分。
推论与应用
差分连接离散导数与前缀积分:前缀和是恢复操作,交换群提供加法逆元,数组提供可寻址的有界坐标域。它支撑扫描线事件和区间更新批处理;二维差分可把矩形更新化为四个角点修改,在线场景则通过两个Fenwick 树实现区间加与前缀/区间和。前缀恢复也可用并行 scan 或按块顺序读取,但工作、深度和 I/O 必须在各自模型中另计。
差分数组并不是一般数据流摘要:它需要为每个端点保留可寻址槽位,并在最后完整扫描。数据流分位数面对可能巨大或未知的值域,只用受限空间近似秩查询,通常显式带误差与失败概率;两者都“顺序处理更新”,却在存储假设、输出语义和保证类型上完全不同。
参考资料
- OI-Wiki contributors, OI-Wiki (2026), difference arrays.
- cp-algorithms contributors, Algorithms for Competitive Programming (2026), prefix sums and difference techniques.
- Donald E. Knuth, The Art of Computer Programming, Vol. 1: Fundamental Algorithms, 3rd ed., Addison-Wesley, 1997, cumulative sums and finite differences.