樹狀陣列->模板
阿新 • • 發佈:2018-12-17
#include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> using namespace std; int n,m,i,j,k; int a1,b,x,y; int a[2000010],c[2000010]; int lowbit(int x) { return x&-x; } void update(int i,int k) { while(i<=n) { c[i]+=k; i+=lowbit(i); } } int sum(int i) { int sum=0; while(i>0) { sum+=c[i]; i-=lowbit(i); } return sum; } int main() { cin>>n>>m; for(i=1;i<=n;i++) cin>>a[i]; for(i=1;i<=n;i++) update(i,a[i]); while(m--) { cin>>a1; if(a1==1) { cin>>x>>k; update(x,k); } else if(a1==2) { cin>>x>>y; cout<<sum(y)-sum(x-1)<<endl; } } return 0; }