1 论文 http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.14.8917&rep=rep1&type=pdf
2 解释 Binary Indexed Tree made Easy | HackerEarth
3 应用
1) leetcode 求翻转对
2) 算数编辑器
先记思路之后整理
1 一个整数可以用一组 2 的平方和表示
2 Hamming Weight is the number of 1's in the binary representation of a number. 海明重量是二进制数中 bit 1 的个数
数组中从1开始的下标所指元素在BIT的深度是下标的 海明重量
3 隔离出一个整数的最低位的 1,以 a = 10(十进制) 为例 a = 1010(二进制), 则设 x = a & (-a) = 1010 & (0101 + 1) = 1010 & 0110 则 x = 0010
4 隔离出去掉一个整数最低位的1之后的数: a = 12 = 0x1100;去掉最后一个1变为0x1000的方法是 a & (a - 1) = 1100 & (1100 - 1)
= 1100 & 1011 = 0x1000 (延伸:循环利用该方法计算,可快速得到某个整数二进制中 bit 1的个数)
延伸:分段索引树
先记思路之后整理