约 8 分钟
树状数组 c[i] 存的是原数组区间 (i-lowbit(i), i] 的和,长度为 lowbit(i)。于是 c[4] 管 a[1..4],c[6] 管 a[5..6]。这样一个前缀和被拆成 O(log n) 段来累加。
c[i]
(i-lowbit(i), i]
lowbit(i)
c[4]
a[1..4]
c[6]
a[5..6]
c[8] 管 a 的哪一段?c[7] 呢?
c[8]
a
c[7]
登录 后可看答案