区间 [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](左闭
ST 表适合的场景
ST 表适合【0】。 本节模型:st_build(a) 建 ST 表,st_query(st, l, r) O(1) 求闭区间 a[l..r] 的最大值。
ST 表为什么能 O(1)
第 1 步:问第 1 到第 5 个里谁最大 第 2 步:左段:从左端起 4 个 第 3 步:右段:到右端止 4 个 第 4 步:中间重叠了也没关系 第 5 步:两段的最大值再取大的 3 1 4 1 5 9 2 ST 表能 O(1) 查区间最
整段的最大值
运行下面这段程序: 本节模型:st_build(a) 建 ST 表,st_query(st, l, r) O(1) 求闭区间 a[l..r] 的最大值。 #include <algorithm> #include <ios
区间 [1,3] 的最大值
运行下面这段程序: 本节模型:st_build(a) 建 ST 表,st_query(st, l, r) O(1) 求闭区间 a[l..r] 的最大值。 #include <algorithm> #include <ios