Skip to content

前缀和

Prefix sum · Cumulative sum

预先累计序列前缀,使静态区间和查询可由两个前缀值相减得到。

形式陈述

对序列 a1,,an,定义

P0=0,Pi=j=1iaj.

则任意区间和满足

j=lraj=PrPl1.

构建耗时 O(n),每次查询 O(1)。在一般可逆结合运算下,可把减法替换为群逆。

直觉

每个前缀保存从起点到当前位置的全部累计信息;一个区间正是两个前缀之间的差。

例子与边界

二维前缀和通过容斥回答矩形和。若运算只有幺半群而没有逆元,不能仅用两个前缀恢复任意区间结果。

推论与应用

它是差分、积分图、扫描线、Fenwick 树和许多离线统计的最小机制。

参考资料