一句话理解
单点修改:沿 i+=lowbit(i) 向上更新。
为什么要学
加一个值。
讲解
while(i<=n) c[i]+=v, i+=lowbit(i)。
例子
void add(int i, int v) {
for (; i <= n; i += i & -i) c[i] += v;
}
一路更新覆盖 i 的节点。
常见错误
- i 从 0。
- n 开小。
第 410 课
单点修改:沿 i+=lowbit(i) 向上更新。
加一个值。
while(i<=n) c[i]+=v, i+=lowbit(i)。
void add(int i, int v) {
for (; i <= n; i += i & -i) c[i] += v;
}
一路更新覆盖 i 的节点。
树状数组下标通常从 ____ 开始
Ctrl / ⌘ + Enter 运行 · Tab 缩进
左右方向键也可翻课