一维树状数组模板

 1 int s[40005],n;
 2 int lb(int i)
 3 {
 4     return i&-i;
 5 }
 6 void set(int i,int x)
 7 {
 8     while(i<=n)
 9     {
10         s[i]+=x;
11         i+=lb(i);
12     }
13 }
14 int get(int i)
15 {
16     int ans=0;
17     while(i>0)
18     {
19         ans+=s[i];
20         i=i-lb(i);
21     }
22     return ans;
23 }
View Code

 

posted @ 2015-08-14 15:22  相儒以沫  阅读(101)  评论(0编辑  收藏  举报