#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=1e6+10;
#define inf 0x3f3f3f3f3f
#define PII pair<int,int>
int lowbit(int x){return x&(-x);}
int c[N];
int n,m;
void update(int x,int val)
{
while(x<=n)
{
c[x]+=val;
x+= lowbit(x);
}
}
int query(int l,int r)
{
int sum=0;
while(r>0)
{
sum+=c[r];
r-= lowbit(r);
}
while(l>0)
{
sum-=c[l];
l-= lowbit(l);
}
return sum;
}
void solve()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
{
int x;
cin>>x;
update(i,x);
}
while(m--)
{
int q;
cin>>q;
if(q==1)
{
int x,k;
cin>>x>>k;
update(x,k);
}
else
{
int l,r;
cin>>l>>r;
cout<<query(l-1,r)<<endl;
}
}
}
signed main()
{
solve();
return 0;
}
树状数组模板
于 2022-08-14 18:31:31 首次发布