树状数组区间更新区间查询

Posted Kurokey

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了树状数组区间更新区间查询相关的知识,希望对你有一定的参考价值。

 1 void ins(int k,int x,int t){
 2     for (; x<=tot; x+=x&-x) c[k][x]+=t;
 3 }
 4 ll getsum(int k,int x){
 5     ll t=0; for (; x; x-=x&-x) t+=c[k][x]; return t;
 6 }
 7 void mdy(int x,int y,int z){
 8     ins(0,x,z); ins(1,x,z*(x-1)); ins(0,y+1,-z); ins(1,y+1,-z*y);
 9 }
10 ll qry(int x,int y){
11     return getsum(0,y)*y-getsum(1,y)-getsum(0,x-1)*(x-1)+getsum(1,x-1);
12 }

 

以上是关于树状数组区间更新区间查询的主要内容,如果未能解决你的问题,请参考以下文章

树状数组 P3368区间更新 单点查询

树状数组区间修改,区间更新:差分数组的运用

树状数组(区间更新,区间查询)

树状数组模板(持续更新)

树状数组区间更新区间查询

树状数组区间更新区间查询以及gcd的logn性质