前缀和与差分数组
一维前缀和
一维前缀和定义:一维数组arr的前缀和sum满足
sum[i]={ sum[i−1]+arr[i]if i≥1arr[i]if i=0 sum[i] = \begin{cases} sum[i-1] + arr[i] & \text{if } i \geq 1 \\ arr[i] & \text{if } i = 0 \end{cases} sum[i]={ sum[i−1]+arr[i]arr[i]if i≥1if i=0
根据上述公式求任意区间和
sum[L,R]={ sum[R]−sum[L−1]if L≥1sum[R]if L=0 sum[L,R] = \begin{cases} sum[R] - sum[L - 1] & \text{if } L \geq 1 \\ sum[R] & \text{if } L = 0 \end{cases} sum[L,R]={ sum[R]−sum[L−1]sum[R]if L≥1if L=0
一维差分数组
场景:一个一维数组arr=[1,3,7,5,2],对arr进行m次操作,每次操作把arr[L,R]范围内的元素加上V
一维数组的差分数组定义:
d[i]={ arr[i]−arr[i−1]if i≥1arr[i]if i=0 d[i] = \begin{cases} arr[i] - arr[i-1] & \text{if } i \geq 1 \\ arr[i] & \text{if } i = 0 \end{cases} d
