树状数组之插间问点

来源:互联网 发布:三体 阶梯飞行器 知乎 编辑:程序博客网 时间:2024/06/05 00:44

点击打开链接

 # include<stdio.h># include<string.h>int a[1000005];int lowbit(int x){return x&-x;}void update(int x,int y){while(x>0){a[x]=a[x]+y;//printf("%d ",a[x]);x=x-lowbit(x);}}int get(int x,int y){int sum=0;while(x<=y){sum=sum+a[x];//printf("%d ",sum);x=x+lowbit(x);}return sum;}int main(){int t,m,sum,max=0;char str[10];memset(a,0,sizeof(a));scanf("%d%d",&t,&m);while(t--){int b,c,d,len;scanf("%s",str);len=strlen(str);if(len==3){scanf("%d%d%d",&d,&b,&c);if(max<d){max=d;}if(max<b){max=b;}update(b,c);update(d-1,-c);}else{scanf("%d",&d);sum=get(d,max);printf("%d\n",sum);}}return 0;}        


原创粉丝点击