#include<bits/stdc++.h>
#include<math.h>
#include<algorithm>
using namespace std;
#define ll long long
int n,m,a[10000];
int getLowBit(int x)
{
return x&-x;
}
void add(int x,int k)
{
for(;x<=n;x+=getLowBit(x))
a[x]+=k;
}
int quiry(int x)
{
int ans=0;
while(x!=0)
{
ans+=a[x];
x-=getLowBit(x);
}
return ans;
}
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
{
int t;
cin>>t;
add(i,t);
}
for(int i=1;i<=m;i++)
{
int op,x,y;
cin>>op>>x>>y;
if(op==1)
{
add(x,y);
}
else if(op==2)
{
int result;
result=quiry(y)-quiry(x-1);
cout<<result<<endl;
}
}
}
树状数组(求区间)
最新推荐文章于 2023-12-04 19:09:07 发布