博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
树状数组2模板 Luogu 3368
阅读量:4661 次
发布时间:2019-06-09

本文共 1259 字,大约阅读时间需要 4 分钟。

树状数组区间修改&&**……*&%&……

好吧,我看了Running-coder的博客,久久才明白……

废话不多说:讲思路:无………………

 

代码:

1  #include
2 #include
3 #include
4 #include
5 using namespace std; 6 int bit[1000000],n,m,d,p,xx,yy,kk; 7 int lazy[1000000]; 8 int a[1000000]; 9 10 void add(int i,int x){11 while(i<=n){12 bit[i]+=x;13 i+=i & -i;14 }15 }16 17 void addn(int x,int y,int k){18 while(y>=x){19 lazy[y]+=k;20 y -=y & -y;21 }22 x--;23 while(x>y){24 lazy[x]-=k;25 x -=x& -x;26 }27 }28 29 int sum(int i){30 int s=a[i];31 while(i<=n){32 s+=lazy[i];33 i+=i & -i;34 }35 return s;36 }37 38 int main(){39 scanf("%d %d",&n,&m);40 for(int j=1;j<=n;j++){41 scanf("%d",&d);42 add(j,d);43 a[j]=d;44 }45 for(int j=1;j<=m;j++){46 scanf("%d",&p);47 switch (p){48 case 1:{49 scanf("%d %d %d",&xx,&yy,&kk);50 addn(xx,yy,kk);51 break;52 }53 case 2:{54 scanf("%d",&xx);55 cout<
<

 

转载于:https://www.cnblogs.com/Misaki-Mei/p/7401533.html

你可能感兴趣的文章