树状数组

 1 int c[maxn],n;
 2 int lowbit(int x)
 3 {
 4     return x&(-x);
 5 }
 6 
 7 void update(int i,int val)
 8 {
 9     while(i<=n)
10     {
11         c[i] +=val;
12         i += lowbit(i);
13     }
14 }
15 int query(int i)
16 {
17     int sum = 0;
18     while (i > 0)
19     {
20         sum += c[i];
21         i -= lowbit(i);
22     }
23     return sum;
24 }

 

posted @ 2017-08-22 22:53  啦啦啦天啦噜  阅读(139)  评论(0编辑  收藏  举报