# 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 无法结合二进制抬表