单点修改,区间查询树状数组
#include<bits/stdc++.h>
using namespace std;
int a[1000100];
int main(){int n,m;cin>>n;for(int i=1;i<=n;i++){int j=i;int x;cin>>x;while(j<=n){a[j]+=x;j+=j&-j;}}cin>>m;for(int i=0;i<m;i++){string s;cin>>s;if(s=="ADD"){int j,k;cin>>j>>k;while(j<=n){a[j]+=k;j+=j&-j;}}if(s=="SUM"){int l,r;int ansl=0,ansr=0;cin>>l>>r;l-=1;while(l>0){ansl+=a[l];l-=l&-l;}while(r>0){ansr+=a[r];r-=r&-r;}cout<<ansr-ansl<<endl;}}return 0;
}