@[WangYao0126](/user/815011) 这是在你代码的基础上改的,自己对照一下:
```cpp
#include<bits/stdc++.h>
using namespace std;
int n,m;
int a[500005];
int fenwick[500005];
void add(int p,int v){
for(;p<=n;p+=(p&-p))
fenwick[p]+=v;
return;
}
int query(int p){
int res=0;
for(;p!=0;p-=(p&-p))
res+=fenwick[p];
return res;
}
int query1(int l,int r){
return query(r)-query(l-1);
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++)
cin>>a[i];
for(int i=1;i<=n;i++){
add(i, a[i]);
}
for(int i=1;i<=m;i++){
int type;
cin>>type;
if(type==1){
int p,v;
cin>>p>>v;
add(p,v);
}
else{
int l,r;
cin>>l>>r;
cout<<query1(l,r)<<'\n';
}
}
return 0;
}
```
by WilliamFranklin @ 2024-01-28 10:30:00
@[WangYao0126](https://www.luogu.com.cn/user/815011) 你应该将数组 fenwick 的初始化移动到输入每个数字之后。
by qwertyuiop951357 @ 2024-01-28 10:30:13
@[WangYao0126](/user/815011) add 函数用 void 类型
by Dream_Creator @ 2024-01-28 10:31:28
@[WilliamFranklin](/user/330901) 万分感谢!!
by WangYao0126 @ 2024-01-28 10:33:14
OK,AC了,此帖结
by WangYao0126 @ 2024-01-28 10:35:46