bet55365体育在线投注您当前的位置:主页 > bet55365体育在线投注 >

树木排列(BIT)

更新时间:2019-11-27 07:17

树形矩阵的原始英文表示:BinaryIndexedTree(BIT),字面转换的含义如下:二进制标记树
如果矩阵A是基矩阵,则矩阵C是区间矩阵。
接下来,在具体介绍矩阵C的特征之前,示出了以下树关系图。
很容易找到上面这张图片。
矩阵C[]表示的范围如下:
C1 = A1[1,1]
C2 = C1 + A2 = A1 + A2[1,2]
C3 = A3[3,3]
C4 = C2 + C3 + A4 = A1 + A2 + A3 + A4[1,4]
C5 = A5[5.5]
C6 = C5 + A6 = A5 + A6[5,6]
C7 = A7[7.7]
C8 = C4 + C6 + C7 + A8 = A1 + A2 + A3 + A4 + A5 + A6 + A7 + A8[1,8]
C9 = A9[9.9]
由每个c[i]管理的间隔是[i-bitlow(i)+ 1,i]。
也就是说,每个矩阵C i至少包含A i,并且所有矩阵C j满足j +最低位(j)= i。
例如,C8包括C4,C6和C7以及A8。
?
410 = 1002,1002 + 1002 = 10002 = 810
610 = 1102,1102 + 102 = 10002 = 810
710 = 1112.1112 + 12 = 10002 = 810
注意:lower_bit(i)是计算数字i的二进制表示,表示从开头到右边表示的数字。
使用位操作
可以轻松获得计算lower_bit()的简单方法。
内部位(intx)
Returnx-X。
因此,当更新A i时,仅需要垂直更新:C[i],C[i = i + lower_bit(i)]…
例如,更新A1分别更新C1,C2,C4和C8。
(这里n = 9)
您可以在更新过程中理解这一点。更新所有Cj矩阵,包括Ai。
计算下标j的过程类似于在树结构中查找主节点的过程。

【返回列表页】