没事儿干,复习模板......
1.树状数组
本来不想写这个的,但是反正就几分钟就打完了,所以就写了,水AC数。
1 #include<cstdio> 2 3 typedef long long ll; 4 int n,m; 5 ll c[500005]; 6 7 int lb(int p) 8 { 9 return p&(-p); 10 } 11 12 void add(int p,int v) 13 { 14 for(int i=p;i<=n;i+=lb(i))c[i]+=(ll)v; 15 } 16 17 ll sum(int p) 18 { 19 ll ret=0; 20 for(int i=p;i;i-=lb(i))ret+=c[i]; 21 return ret; 22 } 23 24 int main() 25 { 26 scanf("%d%d",&n,&m); 27 for(int i=1;i<=n;i++) 28 { 29 int t; 30 scanf("%d",&t); 31 add(i,t); 32 } 33 for(int i=1;i<=m;i++) 34 { 35 int op,a,b; 36 scanf("%d%d%d",&op,&a,&b); 37 if(op==1)add(a,b); 38 if(op==2)printf("%lld\n",sum(b)-sum(a-1)); 39 } 40 return 0; 41 }