那您这样写 sum 函数有啥意义……
by Aleph1022 @ 2019-08-17 22:47:07
@[初嫁QAQ](/space/show?uid=102028)
热死了可还行
另外统计答案不是相减吗
这个写法还是第一次见
by Jelly_Goat @ 2019-08-17 22:47:52
```cpp
#include <cstdio>
int n,m,x,l,r,tree[550000];
int sum(int x){
int s=0;
while(x!=0){s+=tree[x];x-=x&(-x);}
return s;
}
void add(int x,int k){
while(x<=n){tree[x]+=k;x+=x&(-x);}
}
int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=n;++i){scanf("%d",&x);add(i,x);}
for(int i=1;i<=m;++i){
scanf("%d%d%d",&x,&l,&r);
if(x==1)add(l,r);else printf("%d\n",sum(r)-sum(l-1));
}
return 0;
}
```
sum函数的下标是做到零停止。
by 我的天空 @ 2019-08-17 22:56:24
我劝你一句,老老实实把代码写完全,别老想着一句代码干三句的事
by 我的天空 @ 2019-08-17 23:00:03
@[我的天空](/space/show?uid=94712) 太强了,大佬吊打我OTZ Orz orz
by Thaumaturge @ 2019-09-19 13:50:25