day 03 差分(二)
-
基本差分
- 本质上就是前缀和的逆运算
- 构造b1,b2...bn使得a1,a2...an为其前缀和
- 基本思路b1=a1,b2=a2−a1,b3=a3−a2...
- 此处也可以看成n次插入操作,例如b1为在1到2之间插入a1 此时b1=a1b2=−a1之后在2到3之间插入a2 此时b2=a2−a1以此类推即可
- 插入操作:在l和r之间都加上c时bl+c br−c
- 作用:用O(1)的时间对原数组某一段同时加上或减去一个数
- 基本实现:(代码和字数比有限制 懒得调了也丢图片了)

-
二维差分
- 和一维差分类似
- 插入操作:在x2y2和x1y1之间加上c时 b(x1y1)+=c b(x1y2)−=c b(x2y1)−=c b(x2y2)+=c (同样可以由画图得出)
- 构造方式和一维相同
- 基本实现:(甚至用容器跑不起来,迫不得已用数组实现的)
- 因为代码和字数比有限制,这个直接放图片了。
