树状数组维护区间和支持区间加法

令原数组为\(\{a_n\}\),差分数组\(\{d_i=a_i-a_{i-1}\}\)
显然\(a_x=\sum_{i=1}^x d[i]\)
我们现在要求\(\sum_{i=1}^x a_i\)
把每个\(a_i\)都按上面的形式表示,就有\(\sum_{i=1}^x a_i=\sum_{i=1}^x d_i(x-i+1)=(x+1)\sum_{i=1}^x d_i-\sum_{i=1}^x id_i\)
于是开2个树状数组维护\(\{d_i\}\)\(\{id_i\}\)即可

posted @ 2019-08-28 20:21  Qihoo360  阅读(187)  评论(1编辑  收藏  举报
You're powerful!