【李老师】CSP200-第16课:差分

李CSP200

2024-07-19 7:54:26
2024-07-19 22:54:26

信息与公告

1、差分算法:用于优化频繁修改任意区间的值

2、算法思想:先做前后差分,再做区间两端的加减,最后求前缀和。

(1)首先将原数组a转换为差分数组b。转换公式为:

b[i] = a[i] -a[i-1];

(2)对原数组a中下标l到r之间所有元素加上x,转换为,对差分数组b中下标l的元素加上x,对下标r+1的元素减去x,即

b[l] + x
b[r+1] – x

(3)对差分数组b,进行前缀和操作,得到修改后的原数组a,即

a[i] = a[i-1] +b[i];