§05 线性结构
树状数组 Fenwick Tree
lowbit 跳跃:单点更新与前缀和都是 O(log n)——比线段树轻量十倍。
树状数组 Fenwick Tree
伪代码
1
// lowbit(x) = x & (-x)
2
update(i, delta):
3
while i <= n: tree[i] += delta; i += lowbit(i)
4
query(i): // 前缀和 [1..i]
5
sum = 0
6
while i > 0: sum += tree[i]; i -= lowbit(i)