【差分知识点】
1、【问题】:对数组a的任意区间进行频繁的减操作。
方法1:直接在数组a的区间上进行加减操作。方法简单,但容易超时。
方法2:使用差分算法。
2、差分算法步骤:(1)原数组a;(2)将原数组a转化为差分数组b;(3)在差分数组b上进行加减操作;(4)用前缀和方法将差分数组b转化为结果数组c。
其中:
(2)原数组a转化为差分数组b的公式:b[i] = a[i] - a[i-1];
(3)差分数组b上区间[l, r]的操作公式:b[l] = b[l] + x; b[r+1] = b[r+1] - x;
(4)将差分数组b转换为新数组c的公式:c[i] = c[i-1] + b[i];
3、差分将区间操作转化为单点操作原理