综合:前缀和区间和

运行下面这段程序: 综合:前缀和 / 树状数组 / 线段树 / ST 表,按题目要求选对结构。 #include <algorithm> #include <iostream> #include <string

开始练习 →

综合:ST 表区间最大

运行下面这段程序: 综合:前缀和 / 树状数组 / 线段树 / ST 表,按题目要求选对结构。 #include <algorithm> #include <iostream> #include <string

开始练习 →

综合补全:前缀和公式

补全 range_sum 的区间和公式,求整段和。 综合:前缀和 / 树状数组 / 线段树 / ST 表,按题目要求选对结构。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

综合补全:lowbit

补全 lowbit,求 lowbit(20)。 综合:前缀和 / 树状数组 / 线段树 / ST 表,按题目要求选对结构。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

综合补全:线段树左边界

补全 seg_query 的左边界判断,求 a[1..3] 的和。 综合:前缀和 / 树状数组 / 线段树 / ST 表,按题目要求选对结构。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

综合补全:ST 表取最大

补全 st_query 的两段取 max,求 [0,5] 的最大值。 综合:前缀和 / 树状数组 / 线段树 / ST 表,按题目要求选对结构。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

限时题为什么用 -O2

限时题的 Makefile 用 -O2 编译,主要是为了【0】。

开始练习 →

补写树状数组区间和

场景:实验机上 ~/work/rq/bit.cpp 按指令操作一个数组:add i v 把第 i 个数加上 v,sum l r 求第 l 到第 r 个的和(下标从 1 开始)。add 和 ask 两个函数还没写。 任务:补全树状数组的 ad

开始练习 →

十万次区间最大值

场景:~/work/rq/rmq.cpp 读入 n 个数和 q 次询问,每次问第 l 到第 r 个里的最大值,最后输出所有答案的和。结果是对的,可 n、q 都到 10^5 时要跑很久。 任务:改写 rmq.cpp,让 n = q = 10^

开始练习 →

线段树单点改区间查

场景:~/work/rq/seg.cpp 按指令操作:set i v 把第 i 个数改成 v,sum l r 求 [l, r) 的和(下标从 0 开始)。线段树的 update 和 query 还没写。 任务:补全迭代线段树的 update

开始练习 →