P3368 模板树状数组 2
Posted lightyachoo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了P3368 模板树状数组 2相关的知识,希望对你有一定的参考价值。
P3368 【模板】树状数组 2
#include<bits/stdc++.h> using namespace std; const int N=5e5+10; int a[N]; int c[N<<2]; int n,m; int lowbit(int x){ return x&-x; } void updata(int x,int k){ while(x<=n){ c[x]+=k; x+=lowbit(x); } } int getsum(int x){ int ans=0; while(x){ ans+=c[x]; x-=lowbit(x); } return ans; } int main(){ scanf("%d%d",&n,&m); for(int i=1;i<=n;i++){ scanf("%d",&a[i]); updata(i,a[i]-a[i-1]); } for(int i=1;i<=m;i++){ int go; scanf("%d",&go); if(go==1){ int x,y,k; scanf("%d%d%d",&x,&y,&k); updata(x,k); updata(y+1,-k); } if(go==2){ int x; scanf("%d",&x); printf("%d ",getsum(x)); } } return 0; }
以上是关于P3368 模板树状数组 2的主要内容,如果未能解决你的问题,请参考以下文章