有数组
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的前缀和数组。
例子:
假如现在要将数组 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],故