一维差分:(博客图片来源:here)
设有一个序列(a_{1},a_{2},a_{3},cdots ,a_{4})
我们定义一个新的序列:
[left{egin{matrix}
b_{i}=a_{i} & i=1\
b_{i}=a_{i}-a_{i-1}& i
eq 1
end{matrix}
ight.]
(b)数组就是(a)数组的差分数组
(ps:)差分的前缀和是原序列
差分应用一:
当我们要在某个区间(left [ l,r ight ])的所有值都加上一个数(x)时:我们只需要在差分数组中进行一加一减即可:(b_{l}+x,b_{r+1}-x)
查分应用二:快速求前缀和
(设sum_{x}为以第x个数为结尾的前缀和,s_{i}为原数组,b_{i}为差分数组)