树状数组单点修改区间查询
2017-11-03 12:43
295 查看
树状数组单点修改区间查询
// by spli #include<cstring> #include<cstdio> #include<algorithm> #include<iostream> using namespace std; const int N=500010; int n,m; int a ,c ; int lowbit(int x){return x&(-x);} void add(int pos,int v){ for(int i=pos;i<=n;i+=lowbit(i)) c[i]+=v; } int query(int x){ int ret=0; for(int i=x;i>=1;i-=lowbit(i)) ret+=c[i]; return ret; } int main(){ scanf("%d%d",&n,&m); for(int i=1;i<=n;++i) scanf("%d",&a[i]); for(int i=1;i<=n;++i) add(i,a[i]); int op,x,y; while(m--){ scanf("%d%d%d",&op,&x,&y); if(op==1) add(x,y); else printf("%d\n",query(y)-query(x-1)); } return 0; }
相关文章推荐
- 树状数组 区间修改,单点查询;
- 树状数组(单点修改区间查询、区间修改单点查询、区间修改区间查询)
- 【算法系列学习】线段树vs树状数组 单点修改,区间查询 [kuangbin带你飞]专题七 线段树 A - 敌兵布阵
- 树状数组的区间修改,单点查询
- 树状数组-单点修改区间查询-区间修改单点查询-区间修改区间查询
- 【原创】【数据结构】一维树状数组的基本操作(单点修改,区间查询) (HDU1166 敌兵布阵)
- 树状数组(区间修改,单点查询)
- POJ-2763 Housewife Wind (树链剖分 入门题 树状数组 单点修改 区间查询)
- Matrix 二维树状数组 区间修改+单点查询
- 【codevs1080】【树状数组】 单点修改 区间查询
- (模板)树状数组 (区间修改,单点查询)
- 【codevs1081】【树状数组】区间修改 单点查询
- 二维树状数组(区间修改,单点查询)
- 【树状数组】【单点修改区间求和】【区间修改单点查询】【单点修改区间最大值查询】
- 树状数组模板1——单点修改区间查询
- 树状数组模板2——区间修改,单点查询
- CS Academy Round #30 (Div. 2 only) C.Constant Sum(树状数组,区间修改,单点查询模板)
- hdu1166敌兵布阵 (树状数组 单点修改+区间查询)
- 树状数组的区间修改单点查询及Color the ball的AC代码
- 树状数组模板(max,min,区间和,区间修改,单点查询)