潘CSP200八点班
前缀和算法
用途:用于频繁计算区间和。 总体思路:先把每个元素的前缀和计算出来,然后每个区间和可以通过两个和之差求得 前缀和计算: b[i] = b[i-1] + a[i] 区间和计算: [l,r]区间和 = b[r] - b[l-1]
差分算法
用途:频繁修改任意区间的值。 总体思路:首先将原数组a转换为差分数组b。对差分数组b的区间两端进行加减操作。对差分数组b,进行前缀和操作,得到修改后的原数组a。 差分计算:b[i] = a[i] -a[i-1]; 对差分数组区间进行加减操作:b[l] + c; b[r+1] – c; 转换到原数组:a[i] = a[i-1] +b[i];