补全:左边界是奇数

补全 seg_query:左端是奇数时,要把这片叶子并进答案。补全后输出 a[1..3] 的和。 本节模型:迭代线段树 seg_build(a) 返回 Seg{n, tree},seg_query(s, l, r) 求 a[l..r-1](

开始练习 →

补全:右边界累加

补全 seg_query:右端是奇数时,并进 tree[r]。补全后输出 a[1..3] 的和。 本节模型:迭代线段树 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](左闭右开)的和。

开始练习 →

左端是奇数时怎么办

第 1 步:8 个数的线段树 第 2 步:要第 2 到第 7 个的和 第 3 步:左边零头:单独一片叶子 第 4 步:中间整块:取两个大节点 第 5 步:右边零头:再一片叶子 第 6 步:只加了 4 个节点 31 9 22 4 5 14 8

开始练习 →

区间 [1,4) 的和

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

开始练习 →

区间 [2,5) 的和

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

开始练习 →

补全:右端奇数判断

补全 seg_query:右端是奇数要并入。补全后输出 a[0..2] 的和。 本节模型:迭代线段树 seg_build(a) 返回 Seg{n, tree},seg_query(s, l, r) 求 a[l..r-1](左闭右开)的和。

开始练习 →

补全:左端加上偏移

补全 seg_query:查询下标要加上叶子偏移 n。补全后输出 a[1..3] 的和。 本节模型:迭代线段树 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](左闭右开)的和。 (本题用

开始练习 →

补全:右端累加

补全 seg_query:右端并入时累加 tree[r]。补全后输出 a[0..2] 的和。 本节模型:迭代线段树 seg_build(a) 返回 Seg{n, tree},seg_query(s, l, r) 求 a[l..r-1](左闭

开始练习 →