首页课程小红花墙

算法进阶 · 小纸条

选一章打印。双面打印(按长边翻页)后沿虚线剪开,每张卡片正面题目、背面答案。

第 1 章30第 2 章30第 3 章30第 4 章30第 5 章30第 6 章30第 7 章30第 8 章30第 9 章30第 10 章30第 11 章30第 12 章30第 13 章30第 14 章30第 15 章30第 16 章30第 17 章30第 18 章30第 19 章30第 20 章30第 21 章30第 22 章30第 23 章30第 24 章30第 25 章10
只印题目
第 1 页 · 正面(题目)
1ST表·直觉

ST 表适合“边改边查”吗?

2ST表·预处理

f[i][0] 应初始化为什么?

3ST表·查询

为什么两个区间重叠也没关系?

4并查集·回顾

判断 x、y 是否同组的依据是什么?

5路径压缩

路径压缩把路径上节点的父亲改成了谁?

6按秩合并

两棵高度相同的树合并后,新树的高度如何变化?

7带权并查集·直觉

带权并查集里除 f[x] 外还需记录什么?

8带权并查集·应用

两点已在同一集合时,新关系用什么来判断真假?

9优先队列·回顾

想每次取最小值,该用大根堆还是小根堆?

10合并果子

堆 1 2 9 的最小合并总代价是多少?

第 1 页 · 背面(答案)

参考答案(家长):a[i](长度为 1 的区间就是它自己)。

参考答案(家长):不适合,它针对不修改的静态数据。

参考答案(家长):find(x)==find(y)(根相同)。

参考答案(家长):最大值“可重复贡献”,同一元素算两次不改变结果。

参考答案(家长):加 1(作为新根的那棵秩要 +1)。

参考答案(家长):集合的根。

参考答案(家长):用它们的 d 差(相对权值)是否与新关系一致。

参考答案(家长):d[x],即 x 相对父亲的权值。

参考答案(家长):1+2=3,3+9=12,合计 15。

参考答案(家长):小根堆。

第 2 页 · 正面(题目)
11第k大

求第 k 大用小根堆还是大根堆来维护这 k 个元素?

12对顶堆·中位数

两堆元素总数为奇数时,中位数在哪个堆顶?

13多路归并

归并 k 路时,堆里同时最多有几个元素?

14平衡树·直觉

普通 BST 最坏会退化成什么形状?

15set 的本质

需要有序且允许重复,应该用哪个容器?

16set·前驱后继

求集合中“第一个大于等于 x 的元素”,用哪个成员函数?

17multiset·应用

想只删除 multiset 中的一个 5,应传给 erase 什么?

18离散化·直觉

值 {5, 1000000, 42} 离散化后分别映射成什么?

19离散化·实现

unique 之前必须先做什么?

20离散化·查映射

用什么函数在有序表里找 v 的位置?

第 2 页 · 背面(答案)

参考答案(家长):元素较多那个堆的堆顶。

参考答案(家长):小根堆(弹掉的是这 k 个里最小的)。

参考答案(家长):一条链(近似链表),操作变 O(n)。

参考答案(家长):k 个(每路各一个当前候选)。

参考答案(家长):lower_bound(x)。

参考答案(家长):multiset。

参考答案(家长):1、3、2(按从小到大的排名)。

参考答案(家长):传迭代器(find(5) 找到的那个),不要传值 5。

参考答案(家长):lower_bound(二分查找)。

参考答案(家长):排序(unique 只去除相邻的重复元素)。

第 3 页 · 正面(题目)
21离散化·配合

求 1e9 值域的逆序对,为何要先离散化?

22分块·直觉

分块单次操作的典型复杂度是多少?

23分块·块大小

n=100,块大小取多少较合适?

24分块·区间查

l 和 r 落在同一块时怎么处理?

25分块·区间改

整块被区间加时,是逐个改元素还是打标记?

26分块·小结

分块相比线段树,主要优点是什么?

27选对结构

“静态数组,只反复查区间最大值”,选哪个?

28区间套路

“信息可合并且需要区间修改”,一般会选什么?

29常见坑

线段树数组一般要开原长的几倍?

30阶段总复习

给“区间加 + 区间求和”和“滑动窗口最大值”各选一个最合适的工具。

第 3 页 · 背面(答案)

参考答案(家长):O(√n)。

参考答案(家长):值域太大开不下树状数组,压缩到 O(n) 才能用。

参考答案(家长):直接暴力遍历这一段(不用整块汇总)。

参考答案(家长):约 10(√100)。

参考答案(家长):好写、通用性强(能维护更奇怪的信息)。

参考答案(家长):打块标记(延迟,O(1))。

参考答案(家长):线段树(带懒标记)。

参考答案(家长):ST 表(查询 O(1))。

参考答案(家长):前者用带懒标记的线段树;后者用单调队列。

参考答案(家长):4 倍(4n)。

op599 课程