另一组数的前缀和

运行下面这段程序: 本节模型:lowbit(x) = x & (-x)、bit_build(a) 建树状数组、bit_query(tree, i) 求前缀和 a[0..i-1]。 #include <algorithm>

开始练习 →

补全:查询的初值

补全 bit_query:累加器从 0 开始。补全后输出前 3 个的和。 本节模型:lowbit(x) = x & (-x)、bit_build(a) 建树状数组、bit_query(tree, i) 求前缀和 a[0..i-1]。

开始练习 →

补全:查询的循环条件

补全 bit_query:i > 0 才继续。补全后输出第 1 个数。 本节模型:lowbit(x) = x & (-x)、bit_build(a) 建树状数组、bit_query(tree, i) 求前缀和 a[0..i-1

开始练习 →

补全:建树时往父区间跳

补全 bit_build:父区间下标是 j = i + lowbit(i)。补全后输出前 5 个的和。 本节模型:lowbit(x) = x & (-x)、bit_build(a) 建树状数组、bit_query(tree, i)

开始练习 →

线段树节点存什么

第 1 步:叶子放原数组 第 2 步:父亲 = 两个孩子之和 第 3 步:父亲 = 两个孩子之和 第 4 步:根管着整个数组 3 1 4 1 5 4 9 线段树每个内部节点存的是【0】。 本节模型:迭代线段树 seg_build(a) 返回

开始练习 →

迭代线段树的叶子在哪

迭代线段树把原数组第 i 个元素放在 tree 的【0】。 本节模型:迭代线段树 seg_build(a) 返回 Seg{n, tree},seg_query(s, l, r) 求 a[l..r-1](左闭右开)的和。

开始练习 →

建树时父节点的值

自底向上建树时,父节点等于【0】。 本节模型:迭代线段树 seg_build(a) 返回 Seg{n, tree},seg_query(s, l, r) 求 a[l..r-1](左闭右开)的和。

开始练习 →

线段树的整段和

运行下面这段程序: 本节模型:迭代线段树 seg_build(a) 返回 Seg{n, tree},seg_query(s, l, r) 求 a[l..r-1](左闭右开)的和。 #include <algorithm> #in

开始练习 →

补全:叶子放到 n+i

补全 seg_build:叶子放在 tree[n + i]。补全后输出整段和。 本节模型:迭代线段树 seg_build(a) 返回 Seg{n, tree},seg_query(s, l, r) 求 a[l..r-1](左闭右开)的和。

开始练习 →

补全:父节点聚合

补全 seg_build:父 = 左右孩子之和。补全后输出整段和。 本节模型:迭代线段树 seg_build(a) 返回 Seg{n, tree},seg_query(s, l, r) 求 a[l..r-1](左闭右开)的和。 (本题用 g

开始练习 →