跳到正文
信奥逐课

第 411 课

前缀查询

🟠 进阶 约 10 分钟

一句话理解

前缀查询:沿 i-=lowbit(i) 向下累加。

为什么要学

sum(1..i)。

讲解

while(i) s+=c[i], i-=lowbit(i)。

例子

int sum(int i) {
    int s = 0;
    for (; i; i -= i & -i) s += c[i];
    return s;
}

把前缀拆成几段树状区间。

常见错误

练习 做完再看下一课

前缀和查询沿 i-=lowbit(i) 走。

在线练习 C++ 在浏览器里编译,代码不会上传

Ctrl / ⌘ + Enter 运行 · Tab 缩进

输出
 

进度保存在本机浏览器里。

左右方向键也可翻课