树状数组模板

来源:互联网 发布:乐乎公寓 百子湾店 编辑:程序博客网 时间:2024/06/02 03:14
#include<cstdio>const int maxn=500010;int A[maxn]={0},C[maxn]={0},n,m; void Update(int i,int value){while(i<=n){C[i]+=value;i+=i&(-i);}}int sum(int i){int s=0;while(i>0){s+=C[i];i-=i&(-i);}return s;}void Init(){int t1,t2,t3;scanf("%d%d",&n,&m);for(int i=1;i<=n;i++){scanf("%d",&t1);Update(i,t1);}for(int i=1;i<=m;i++){scanf("%d%d%d",&t1,&t2,&t3);if(t1==1)Update(t2,t3);else printf("%d\n",sum(t3)-sum(t2-1));}}int main(){Init();return 0;}