树状数组 / 二维树状数组

一维树状数组

  · 单点修改 + 单点查询:

    直接使用即可

  · 区间修改 + 单点查询:

    另外维护一个维护前缀和的树状数组,查询时查询与原值相加即可。

  · 区间修改 + 区间查询:

    若要查询区间$[1, R]$的区间和,可推公式,其中$D[i]$表示差分数组:

$\sum\limits_{i=1}^R \sum\limits_{j=1}^i D[j]$
 
$= \sum\limits_{i=1}^R (R - i + 1) * D[i]$
 
$= (x + 1) \sum\limits_{i=1}^R D[i] -  \sum\limits_{i=1}^R (i - D[i])$

猜你喜欢

转载自www.cnblogs.com/Colythme/p/9853159.html