数据结构,支持区间查询,单点修改或区间修改,单点查询。
单点修改操作:
void modify(int x,int val) { while(x<N){ c[x]+=val; x+=lowbit(x); } }
查询前缀和:
int query(int x) { int res=0; while(x){ res+=c[x]; x-=lowbit(x); } return res; }
要做到区间修改、单点查询只需要用差分思想,偷换一下概念即可。