介绍
一组对偶运算
graph TD
A([原数组])
B([前缀和数组])
C([差分数组])
A --前缀和--> B
A --差分--> C
B --差分--> A
C --前缀和--> A
作用
| 运算 | 查询 | 更新 | 功能 |
|---|
| 前缀和 | O(1)区间查询 | O(n)单点更新 | 快速求区间聚合值 |
| 差分 | O(n)单点查询 | O(1)区间更新 | 快速区间更新 |
前缀和
一维前缀和
递推公式
sumi=sumi−1+ai
区间和
sum(l,r)=sumr−suml−1
二维前缀和
递推公式
sumi,j=sumi−1,j+sumi,j−1−sumi−1,j−1+ai,j
区间和
sum(x1,y1),(x2,y2)=sumx2,y2−sumx1−1,y2−sumx2,y1−1+sumx1−1,y1−1
差分
一维差分
递推公式
di=ai−ai−1
区间更新
a(l,r)+k
dl+k,dr+1−k
二维差分
递推公式
di,j=(ai,j−ai−1,j)−(ai,j−1−ai−1,j−1)
区间更新
a(x1,y1),(x2,y2)+x
dx1,y1+x,dx1,y2+1−x,dx2+1,y1−x,dx2+1,y2+1+x