前缀和与差分

发布时间:2024年01月17日

前缀和

一维前缀和

二维前缀和

差分

参考——知乎

一维差分

原理

有数组 a [ ] = { a 1 , a 2 , … , a n } a[] = \{a_1, a_2,\dots,a_n\} a[]={a1?,a2?,,an?},现在构造一个数组 b [ ] = { b 1 , b 2 , … , b n } b[] = \{b_1, b_2, \dots, b_n\} b[]={b1?,b2?,,bn?} ,使得
a i = b 1 + b 2 + ? + b i a_i = b_1 + b_2 + \dots + b_i ai?=b1?+b2?+?+bi?
则称数组 b b b为数组 a a a的差分数组,数组 a a a是数组 b b b的前缀和数组。

用途

  1. O ( 1 ) O(1) O(1)的时间复杂度内实现区间修改

例子:

假如现在要将数组 a a a在区间 [ L , R ] [L,R] [L,R]注意,为闭区间上的每个数均加上 x x x,那么我们立马可知:

- a [ L ] = b [ 1 ] + b [ 2 ] + ? + b [ L ] a[L] = b[1] + b[2] + \dots + b[L] a[L]=b[1]+b[2]+?+b[L],故

文章来源:https://blog.csdn.net/m0_55005568/article/details/135638706
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。