原序列的每个数减前一个数就是差分后的序列,差分后的序列会比原序列多一。
例如, a原序列 1 3 4 -2 7 9 b差分序列 1 2 1 -6 9 2 -9.
b[i] = a[i]-a[i-1];
然后计算差分序列的前缀和。因为第一个元素是相同的,其他每个元素的等于 a[i] = b[i]+a[i-1].b[1] = a[1] 所以前缀和就是原序列。
如果要修改原序列l~r部分都加1的话,只需在差分序列的b[l]+1, b[r+1]-1即可。
原序列的每个数减前一个数就是差分后的序列,差分后的序列会比原序列多一。
例如, a原序列 1 3 4 -2 7 9 b差分序列 1 2 1 -6 9 2 -9.
b[i] = a[i]-a[i-1];
然后计算差分序列的前缀和。因为第一个元素是相同的,其他每个元素的等于 a[i] = b[i]+a[i-1].b[1] = a[1] 所以前缀和就是原序列。
如果要修改原序列l~r部分都加1的话,只需在差分序列的b[l]+1, b[r+1]-1即可。