码迷,mamicode.com
首页 > 编程语言 > 详细

树状数组

时间:2017-08-30 15:33:27      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:http   tree   ret   ++   dia   bsp   class   style   pre   

https://en.wikipedia.org/wiki/Fenwick_tree

 1 int a[100001];
 2 int b[100001];
 3 int n,m;
 4 int lowbit(int x)
 5 {
 6     return x&(-x);
 7 }
 8 void init()
 9 {
10     scanf("%d%d",&n,&m);
11     for(int i=1;i<=n;i++)
12     {
13         scanf("%d",&a[i]);
14     }
15     for(int i=1;i<=n;i++)
16     {
17         b[i]=a[i];
18     }
19     for(int i=1;i<=n;i++)
20     {
21         b[i+lowbit(i)]+=b[i];
22     }
23     return;
24 }
25 void update(int pos,int delta)
26 {
27     b[pos]+=delta;
28     for(int i=pos;i<=n;i+=lowbit(i))
29     {
30         b[i+lowbit(i)]+=delta;
31     }
32     return;
33 }
34 int query(int l,int r)
35 {
36     int res=0;
37     for(int i=r;i>0;i-=lowbit(i))
38     {
39         res+=b[i];
40     }
41     for(int i=l-1;i>0;i-=lowbit(i))
42     {
43         res-=b[i];
44     }
45     return res;
46 }

 

树状数组

标签:http   tree   ret   ++   dia   bsp   class   style   pre   

原文地址:http://www.cnblogs.com/shao0099876/p/7452765.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!