CLRS 六至七部分核心章节

共 29 题
#

1. CLRS Part VI Graph Algorithms 中 BFS、DFS、拓扑、最短路径、最小生成树、最大流的工业实现。

A 最大流只能用 Edmonds-Karp
B BFS 用栈实现无权图最短路径
C 拓扑排序只能用于有环图
D Dijkstra 用堆优化到 O(E log V),Kruskal 用并查集实现 ✓ 正确答案
#

2. CLRS Part VII Selected Topics 中多线程算法、矩阵运算、线性规划、字符串匹配、近似算法、随机化算法的工程语义。

A 随机化算法不提供概率保证
B 线性规划无法用于工程优化
C 字符串匹配只有 KMP 一种
D 多线程算法用工作-深度分析并行复杂度,近似算法处理 NP-hard 问题 ✓ 正确答案
#

3. CLRS 第 24-25 章最短路径在 Map Routing、SDN 路由的工程应用。

A 动态权重对最短路径无影响
B 地图路由只能用朴素 Dijkstra
C SDN 不计算最短路径
D 大规模路网用 Contraction Hierarchies 等预处理加速,SDN 由控制器集中计算路径 ✓ 正确答案
#

4. CLRS 第 32-33 章字符串匹配在文本搜索、DNA 序列的工程应用。

A Boyer-Moore 用启发式加速实际搜索,DNA 用后缀数组/BWT 建立索引 ✓ 正确答案
B KMP 不适合单模式匹配
C Rabin-Karp 无需滚动哈希
D 后缀数组只能用于文本不能用于 DNA
#

5. Small-to-Large 在子树信息合并的 O(n log n) 总代价证明。

A 总代价是 O(n²)
B 每个元素被移动 O(n) 次
C 每个元素因所在集合大小翻倍而至多被移动 O(log n) 次,总代价 O(n log n) ✓ 正确答案
D 合并不改变集合大小,无法证明
#

6. Small-to-Large 在并查集带子树维护的离线合并工程实现。

A 合并方向固定为按秩合并,无法决定
B 它只适用于在线问题
C 信息维护代价与合并方向无关
D 合并时把较小集合信息并入较大集合,总维护代价 O(n log n) ✓ 正确答案
#

7. 子树 multiset 合并在子树不同颜色数的 O(n log n) 工程实现。

A 每个子树必须独立重建,复杂度 O(n²)
B 用 Small-to-Large 合并子树,O(n log n) 内维护各子树不同颜色数 ✓ 正确答案
C 合并不需要维护颜色计数
D 它只能统计颜色而不统计次数
#

8. HLD + 树状数组在支持单点修改、路径求和的混合方案。

A 路径拆为若干 dfn 区间,树状数组做 O(log² n) 的路径求和 ✓ 正确答案
B 树状数组能处理区间赋值
C 单点修改需要 O(n) 时间
D HLD 不把链映射到区间
#

9. HLD 在 0/1 边权最短路径的二分约束工程实现。

A 0-1 BFS 在 O(V+E) 求解,单调约束用二分可行性判定 ✓ 正确答案
B 0-1 BFS 需要 O(V log V)
C 约束无法二分
D HLD 用于转化 0-1 BFS 本身
#

10. Sack 算法的重儿子保留与轻儿子清空策略在子树聚合的工程实现。

A 所有儿子都清空重加
B 重儿子保留贡献、轻儿子清空重加,实现 O(n log n) 子树统计 ✓ 正确答案
C 所有儿子都保留,无需清空
D 复杂度为 O(n²)
#

11. CF 570D Tree Requests 在子树字符频率查询的 DSU on Tree 工程实现。

A 回文条件要求所有字符出现次数为偶数
B 用位掩码记录各深度字符奇偶性,重儿子保留轻儿子清空地回答查询 ✓ 正确答案
C 需要精确计数而非奇偶
D 复杂度为 O(n²)
#

12. CLRS 第 26 章最大流在网络设计、任务调度的工程应用。

A 最大流只能用于网络传输
B 最小割与最大流无关
C 任务调度用二分图匹配转化为最大流求解,最小割揭示网络瓶颈 ✓ 正确答案
D 二分图匹配无法用最大流解决
#

13. CLRS 第 31 章数论算法在密码学的工程应用。

A 素性测试不需要大整数
B 快速幂只用于非密码场景
C RSA 不依赖因式分解困难性
D 扩展欧几里得求模逆元,Miller-Rabin 生成大素数,RSA 依赖大整数模幂 ✓ 正确答案
#

14. DSU on Tree 与 Small-to-Large 在树启发式合并的统一视角。

A Small-to-Large 复杂度是 O(n²)
B DSU on Tree 与 Small-to-Large 无关
C 两者都是启发式合并,靠集合大小翻倍保证 O(n log n) ✓ 正确答案
D DSU on Tree 不继承重儿子贡献
#

15. HLD 在动态树 LCT 配合路径修改的工程实现。

A HLD 支持动态加边
B LCT 只支持静态树
C 两者都不能打路径懒标记
D HLD 静态树路径映射 dfn 区间,LCT 用 splay 处理动态树路径修改 ✓ 正确答案
#

16. HLD 在子树查询的 dfn 序 O(log n) 推导。

A 子树查询也需拆成 O(log n) 条链
B 子树在 dfn 序上是连续区间,故子树查询只需 O(log n) ✓ 正确答案
C 子树在 dfn 序上不连续
D 子树查询复杂度为 O(n)
#

17. HLD 在路径求和与路径最值的 O(log² n) 区间映射工程实现。

A 复杂度为 O(n)
B 路径查询只需 O(log n)
C 路径拆成 O(log n) 条链,每条在 O(log n) 内查询,总 O(log² n) ✓ 正确答案
D 路径只对应一条链
#

18. 维护子树深度与祖先数在子树信息查询的工程实现。

A 深度与 dfn 序无关
B 用 depth 数组记录深度,按深度桶统计子树内各深度信息 ✓ 正确答案
C 子树查询不需要深度信息
D 祖先数无法从 depth 得出
#

19. 长链剖分在树链剖分与 LCT 切换的工程取舍。

A 长链剖分按深度划分,适合深度 DP 与 O(1) 祖先查询,LCT 支持动态树 ✓ 正确答案
B 长链剖分按子树大小划分
C 长链剖分适合路径求和
D LCT 用于静态树
#

20. Codeforces EDU DSU on Tree 章节在子树信息查询的典型题型。

A 每棵子树都独立重建统计
B 复杂度为 O(n²)
C 只能处理众数问题
D 用全局计数数组 + 重儿子保留、轻儿子重加,处理子树统计查询 ✓ 正确答案
#

21. Top Tree on HLD 在子树与路径统一维护的工程实现。

A 用 cluster 的 rake/compress 统一维护路径与子树聚合 ✓ 正确答案
B 它只能维护路径
C 它无法处理子树
D 它与 HLD 无关
#

22. Top Tree 在动态树路径聚合的 O(log n) 操作工程实现。

A 簇不可拆分
B 路径/子树可分解为 O(log n) 个簇,簇合并计算聚合实现 O(log n) ✓ 正确答案
C 每次操作需遍历整棵树
D 复杂度为 O(n)
#

23. Top Tree 在维护路径分裂与合并的 Cluster Forest 表示。

A 路径分裂与合并转化为簇的 split/merge,维护 O(log n) 复杂度 ✓ 正确答案
B 分裂合并会破坏聚合
C 簇不能拆分
D 复杂度为 O(n)
#

24. 维护子树颜色桶在 CF 600E Lomsat gelral 的子树众数和工程实现。

A 复杂度为 O(n²)
B 用 cnt/maxCnt/sum 增量维护众数和,DSU on Tree 提供子树统计 ✓ 正确答案
C 众数和无法增量维护
D 每次查询扫描所有颜色
#

25. 长链剖分在 O(n) 处理子树深度相关 DP 状态。

A 复杂度为 O(n log n)
B 每个节点重建整个深度数组,O(n²)
C 继承最长链并合并短链,每个深度只被合并一次,总 O(n) ✓ 正确答案
D 深度 DP 无法用长链剖分优化
#

26. 长链剖分在支配集 DP 的 O(n) 优化。

A 继承长链深度数组、合并短链,把深度 DP 优化到 O(n) ✓ 正确答案
B 支配集 DP 无法用长链剖分
C 复杂度恒为 O(n²)
D 长链剖分只适用于路径统计
#

27. 长链剖分在树上 DP 合并的指针与 vector 优化工程实现。

A 无法复用数组
B 必须全量拷贝数组
C 复杂度为 O(n²)
D 用指针继承或 vector move 复用实现长链数组共享,避免拷贝,总代价 O(n) ✓ 正确答案
#

28. 长链剖分在树上 K 级祖先的二进制抬表与长链剖分取舍。

A 长链剖分查询是 O(log n)
B 二进制抬表预处理是 O(n)
C 二进制抬表 O(n log n) 预处理 + O(log n) 查询,长链剖分 O(n) 预处理 + O(1) 查询 ✓ 正确答案
D 两者都不能查 LCA
#

29. 长链剖分在树上 K-th ancestor 的 O(n log n) 预处理。

A 查询是 O(log n)
B 预处理 O(n log n) 跳表,配合长链定位实现 O(1) 查询 ✓ 正确答案
C 预处理是 O(n)
D 无法结合二进制抬表