标签:span 前缀和 操作 bit logs for pre nbsp query
1 int a[N],bit[N],n; 2 3 int lowbit(int k) {return k&(-k);} 4 5 void build(){ 6 for(int i=1,x;i<=n;i++){ 7 bit[i]+=a[i]; 8 if((x=i+lowbit(i))<=n) bit[x]+=bit[i]; 9 } 10 } 11 12 void update(int pos,int num){ //add操作 13 while(pos<=n){ 14 bit[pos]+=num; 15 pos+=lowbit(pos); 16 } 17 } 18 19 int query(int k){ //区间:两个前缀和差 20 int ans=0; 21 while(k>0){ 22 ans+=bit[k]; 23 k-=lowbit(k); 24 } 25 return ans; 26 }
标签:span 前缀和 操作 bit logs for pre nbsp query
原文地址:http://www.cnblogs.com/Leonard-/p/7671141.html