差分数组

差分数组

定义

对于第$i$位,记录第$i$位减第$i-1$位的差值。

例子:

下标 0 1 2 3 4 5 6
原数组 0 6 9 5 4 7 3
差分数组 0 +6 +3 -4 -1 +3 -4

用途

快速进行区间修改操作。

注意! 只适用于可被抵消贡献的运算中,如$+/-/\and$​(加、减、异或)等。

若将原数组$[l,r]$区间内加$val$,则相当于将差分数组第$l$位加$val$,第$r+1$位减去$val$(将贡献抵消)。

注意! 是第$r+1$位,而不是第$r$​位!!!

经常和维和区间和的数据结构一起使用。(树状数组等)

上一页
下一页