码迷,mamicode.com
首页 > 其他好文 > 详细

二叉索引树 BIT

时间:2014-10-20 22:42:02      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:style   color   strong   sp   on   amp   bs   ip   nbsp   

BIT

说白了    是根据  数的二进制所显示的特征  建成的一棵树    

 

首先明白 lowbit(x)  表示的意思

他表示一个数 最右边的 1 所对应的值

lowbit(x)= x&-x ;  

下面根据lowbit 来建树 

***********建在脑子里*********

 

BIT特点:

首先将每一个节点 进行 编号

1.每一层 节点 的  lowbit  相等

2.一个节点 i 若是左子节点  则  它所对应的父节点的序号为  i - lowbit(i)

                      右                                                   i + lowbit(i)

3.从  完全二叉树的角度 来看     若以一个节点 i 为根节点   则它的 左子树 的序号依次为   i-lowbit(i)+1     i-lowbit(i)+2  ……   i

 

 

c[i]表示空白区域的数的和

c[i] = A( i - lowbit(i) + 1 ) + A( i - lowbit(i) + 2 ) + …… + A( i )  

 

下面来求   前缀和    &&   当其中一个数的值改变 怎样来修改之前计算好的C[],修改哪些。从而才能再求改变后的前缀和

s[i] 表示前缀和

s[i] 向往上爬 s[i] = sum ( c[x] )   ;    x= i - lowbit(i) ;  

 

若某一点改变  需要更改 C[]

从该点  向往上爬 所经过的节点的c[i]都要改变

c[x]=c[x]+changenum ;   x=i + lowbit(i) ; 

 

二叉索引树 BIT

标签:style   color   strong   sp   on   amp   bs   ip   nbsp   

原文地址:http://www.cnblogs.com/bibier/p/4038876.html

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