标签:区间查询 set pre 区间 tree max query 树状 blog
看了很多讲解仍然不明就里,感觉反正代码很短,暂时当模板背过好了。
//树状数组 单点修改 区间查询 const int maxn=1005; int tree[maxn],n; void init() { for (int i=1;i<=n;i++) tree[i]=0; } //初始化一个长度为n的树状数组,n为全局变量 int lowbit(it k) { return k&-k; } void add(int k,int x) //给位置k加x { while (k<=n) { tree[k]+=x; k+=lowbit(k); } } int querysum(int k) //查询[1,k]的前缀和 { int sum=0; while (k>0) { sum+=tree[k]; k-=lowbit(k); } return sum; } void setvalue(int k,int x) //把位置k置为x { int t=query(k)-query(k-1); add(k,-t); add(k,x); }
标签:区间查询 set pre 区间 tree max query 树状 blog
原文地址:http://www.cnblogs.com/itlqs/p/6392051.html