# 1. 1D / 1D DP 在单调栈与二分线段树混合的工程实现。 A 用单调栈维护候选集,配合二分线段树快速定位最优转移,实现 O(n log n) ✓ 正确答案 B 单调栈无法用于 DP 优化 C 二分线段树不能查询最优 D 1D/1D DP 只能 O(n²)
# 2. 1D / 1D 动态规划在分治优化、Aliens Trick、Knuth 优化的取舍。 A 分治优化用单调决策点批量计算,Aliens Trick 用惩罚系数处理段数约束 ✓ 正确答案 B Knuth 优化要求决策点随机 C Aliens Trick 不涉及二分 D 三者都不依赖决策单调性
# 3. Quadtree 在图像处理与 GIS 索引的 O(n log n) 区域查询。 A 查询不进行剪枝 B 四叉树查询总是 O(n) C 它无法用于图像处理 D 沿树剪枝不相交区域、整块返回包含区域,实现高效范围查询 ✓ 正确答案
# 4. 李超线段树(Li Chao Tree)如何在 O(log n) 内插入直线并查询 x 处最大值,与凸包或单调栈的适用差异? A 李超树插入是 O(n) B 李超树只能查询最小值 C 凸包/单调栈支持任意顺序插入 D 李超树支持任意顺序插入直线与任意 x 查询 O(log n),凸包/单调栈要求单调性 ✓ 正确答案
# 5. 线段树分治在区间修改的离线加回溯的 O(n log² n) 推导。 A 区间修改只落一个节点 B 复杂度为 O(n) C 每个区间修改落到 O(log n) 个节点,结合每节点 O(log n) 操作,总 O(n log² n) ✓ 正确答案 D 无法回溯
# 6. Klee's Algorithm 在区间并长度的 O(n log n) 工程实现。 A 需要 O(n²) 两两判断 B 无需排序端点 C 排序端点后用扫描线维护覆盖层数,累加覆盖长度,O(n log n) ✓ 正确答案 D 无法处理区间并
# 7. 二维线段树在矩阵区域和与区域最值的 O(n log² n) 推导。 A 区域查询是 O(n) B 外层 x 分解 O(log n) 节点、内层 y 查询 O(log n),区域查询 O(log² n) ✓ 正确答案 C 它只有一个维度 D 内存是 O(n)
# 8. 矩形覆盖在 union-find 与离散化的 O(n α(n)) 优化。 A 并查集无法跳跃 B 每个格子被重复填充 C 用并查集跳到下一个未覆盖位置,每格只处理一次,总 O(n α(n)) ✓ 正确答案 D 复杂度为 O(n²)
# 9. 线段树分治在维护可撤销并查集与 segment tree 节点遍历。 A 用按秩合并 + 操作栈记录修改,DFS 退出时按后进先出撤销,不用路径压缩 ✓ 正确答案 B 可撤销并查集用路径压缩 C 撤销顺序任意 D 无法记录合并修改
# 10. 线段树分治加可撤销并查集中回溯顺序必须严格后进先出,按秩合并如何支持撤销? A 撤销顺序任意 B 撤销必须严格后进先出,按秩合并记录修改到栈支持逆序回滚 ✓ 正确答案 C 可撤销并查集用路径压缩 D 按秩合并不支持撤销
# 11. 线段树套线段树在二维区间 K-th number 的 O(log² n) 推导。 A 查询复杂度是 O(n) B 只需一层线段树 C 无法处理二维 K-th D 树套树按值域与位置分层,值域二分 + 内层计数实现 O(log² n) 查询 ✓ 正确答案
# 12. Boost Geometry R-tree 在空间索引的工程接口。 A 它只能存点 B 提供 query 接口支持 intersects/nearest 等空间查询,基于 MBR 组织 ✓ 正确答案 C 不支持批量加载 D 无剪枝机制
# 13. 树套树在矩形第 K 大与矩形不同元素数的离线持久化工程实现。 A 无法离线处理 B 不同元素数用 last 位置技巧是错的 C 离线按坐标排序 + 前缀差分 + 树套树计数,实现矩形第 K 大/不同元素数 ✓ 正确答案 D 复杂度为 O(n)
# 14. 树状数组套主席树在动态 K-th 的 O(log² n) 维护工程实现。 A 树状数组按位置更新、主席树按值域计数,动态区间 K-th 每次 O(log² n) ✓ 正确答案 B 只能处理静态 C 内存是 O(n) D 更新复杂度为 O(n)
# 15. 树状数组套平衡树在动态区间排名与前驱后继查询工程实现。 A 复杂度为 O(n) B 只支持静态 C 前驱后继无法查询 D 位置分块 + 值域平衡树,区间拆 O(log n) 块各 O(log n) 查询,总 O(log² n) ✓ 正确答案
# 16. Segment Tree Beats 的势能分析中区间取 max/min/加这类操作为何总复杂度 O((n+q) log² n)? A 势能可以无限增长 B 每次操作都是 O(log n) 最坏 C 用最大/次大值区分度作势能,势能单调下降且有界,总复杂度 O((n+q) log² n) ✓ 正确答案 D 复杂度为 O(n²)
# 17. CF 813E 在线段树分治与持久化数据结构的工程实现。 A 无法用持久化结构 B 用 last 位置法把出现次数约束转化为阈值,主席树按位置前缀查询 O(log n) ✓ 正确答案 C 复杂度为 O(n²) D 与出现次数无关
# 18. CF 848C 在线段树分治的贡献拆解与离线 add 和 erase 工程实现。 A 无法离线处理 B 贡献无需拆解 C 贡献拆解 + 线段树分治按时间 add/erase,离线维护区间贡献 ✓ 正确答案 D 复杂度为 O(n)
# 19. CF 896E 在区间染色与区间减一与区间求和的工程实现。 A 用势能线段树维护最大值/次小值/计数,配合懒标记处理染色与减一 ✓ 正确答案 B 普通懒标记即可处理 C 无需维护次小值 D 复杂度为 O(n) 每次
# 20. KD-Tree 在 CGAL Kd-Tree 的静态与增量构建取舍。 A 静态构建不平衡 B 增量构建永远平衡 C 静态构建用中位数分割保证平衡,增量构建支持动态插入但可能退化 ✓ 正确答案 D 两者查询性能相同
# 21. KD-Tree 在 K 维最近邻查询的 O(2^d n^(1-1/d)) 推导。 A 高维时剪枝更有效 B 高维时查询更快 C 平均 O(2^d n^(1-1/d)),高维时剪枝失效退化为线性扫描 ✓ 正确答案 D 复杂度与维数无关
# 22. Quadtree 与 KD-Tree 在 2D 区域查询的取舍。 A Quadtree 总是优于 KD-Tree B Quadtree 固定四分、适合均匀分布,KD-Tree 中位数分割、自适应非均匀点 ✓ 正确答案 C KD-Tree 固定划分 D 两者划分方式相同
# 23. 二维线段树与持久化在矩阵历史版本的工程实现。 A 无法查询历史版本 B 每个版本重建整棵树 C 内存与版本数无关 D 修改复制路径节点、共享未变部分,支持 O(log² n) 历史版本查询 ✓ 正确答案
# 24. 二维线段树在 KD-Tree 退化与四叉树的取舍。 A 二维线段树固定分裂保证稳定 O(log² n) 但内存大,KD-Tree 数据自适应可能退化 ✓ 正确答案 B 二维线段树比 KD-Tree 更省内存 C KD-Tree 查询最坏也 O(log² n) D 四叉树永不退化
# 25. 二维线段树在四叉树分块与扫描线的混合维护工程实现。 A 四叉树分块支持局部更新,扫描线按事件顺序处理,适合动态区域统计 ✓ 正确答案 B 扫描线与分块无关 C 分块无法更新 D 混合方案内存比二维线段树更大
# 26. 二维线段树在外部存储(External Memory)的工程实现。 A 用 B-tree 式高扇出与页面局部性减少磁盘 IO,磁盘场景常选 R-tree/B-tree ✓ 正确答案 B 磁盘 IO 不是主要成本 C 内存线段树直接适用磁盘 D 无需考虑页面局部性
# 27. 决策单调性在四边形不等式与 SMAWK 算法的判定工程实现。 A SMAWK 是 O(n²) B 四边形不等式与决策单调性无关 C 四边形不等式是决策单调性的充分条件,SMAWK 在 Monge 矩阵上 O(n) 求最优决策 ✓ 正确答案 D 决策单调性无法判定
# 28. 区间 chmin 与 chmax 在 max、second max、count 三元组工程实现。 A 维护 max/second max/count 使 chmin 只需改最大值 O(1),非此才递归 ✓ 正确答案 B 只需维护最大值即可 C count 信息无用 D chmin 必须递归到叶子
# 29. 区间 chmin 与 chmax 的势能 O(n log² n) 严格证明。 A 势能可无限增长 B 以最大-次大差异为势能,单调下降且有界,均摊 O((n+q) log² n) ✓ 正确答案 C 每次操作最坏 O(n) D 无法证明均摊复杂度
# 30. 扫描线与线段树在矩形面积并的 O(n log n) 工程实现。 A 线段树只维护最值 B 扫描线按 x 排序事件,线段树维护 y 覆盖长度,累加得面积,O(n log n) ✓ 正确答案 C 无需离散化 D 需要 O(n²)
# 31. 扫描线在 Segment Tree on Tree 的 O(n log² n) 路径查询。 A HLD 拆路径为 O(log n) 链区间,线段树 O(log n) 维护,总 O(log² n) ✓ 正确答案 B 路径查询是 O(n) C 无需拆链 D 复杂度为 O(log n)
# 32. 扫描线在矩形周长并的下边长、上边长、左右边长统一推导。 A 垂直边用覆盖长度计算 B 周长只需水平边 C 水平边 = 扫描线覆盖长度变化量,垂直边 = 覆盖层数非零段长度,统一累加 ✓ 正确答案 D 无法用扫描线求周长
# 33. 洛谷 P6242 在区间取最值与区间求和与区间历史和的复合操作。 A 用势能线段树维护 max/min/second/count 多套标记,并处理历史最大值的传播 ✓ 正确答案 B 普通懒标记即可 C 无需历史标记 D 复杂度为 O(n) 每次
# 34. 矩形面积并的三维拓展在体积并的工程实现。 A 无需维护覆盖层数 B 与二维面积并复杂度相同 C 只需一维扫描 D 外层 z 扫描 + 内层二维面积并,复杂度 O(n² log n) ✓ 正确答案
# 35. 离线与在线混合的线段树维护 DP 在分治 FFT 配合工程实现。 A 卷积无法优化 B FFT 不用于卷积 C 分治 FFT 是 O(n²) D 分治统计跨界贡献 + FFT 卷积,优化卷积型 DP 到 O(n log² n) ✓ 正确答案
# 36. 线段树分治在动态图连通性 offline 的工程实现。 A 用普通并查集即可 B 无法离线处理 C 复杂度为 O(m) D 边按时间区间插入线段树节点,DFS 施加/撤销(可撤销并查集),离线回答连通性 ✓ 正确答案
# 37. 线段树分治在图论二分性约束的离线判定工程实现。 A 普通并查集即可判定二分 B 无法离线 C 用带权可撤销并查集维护奇偶性,边按时间区间插入子树,离线判定各时刻二分 ✓ 正确答案 D 复杂度为 O(m)
# 38. 线段树套 Splay 在区间翻转与区间插入的工程实现。 A 只需外层线段树 B Splay 提取区间实现翻转/插入,外层线段树按位置组织以支持值域查询 ✓ 正确答案 C Splay 无法处理区间翻转 D 树套树用于单维区间
# 39. Segment Tree Beats 的适用条件中需要维护"次大值/次小值"与"最大/最小出现次数"的节点信息? A 次大值用于区间加 B 只需维护最大值 C count 信息无用 D 次大值/出现次数使 chmin 能判定"只改最大值"的 O(1) 分支,是势能分析前提 ✓ 正确答案
# 40. 区间取模(区间 mod x)为什么能被势能分析约束,每个数取模后至多减半,总操作次数 O((n+q) log A) 的直觉? A 复杂度为 O(n²) B 每个数取模后至少减半,更新次数 O(log A),总复杂度 O((n+q) log A) ✓ 正确答案 C 每个数可取模 O(n) 次 D 取模不减半
# 41. Segment Tree Beats 在 lazy 势能分析的双势能标记工程实现。 A 标记传播顺序无关 B 只需一套懒标记 C 双势能无法复合 D chmin 与 chmax 各用一套懒标记分别影响 max/min,传播需按优先级保证势能单调 ✓ 正确答案
# 42. Segment Tree Beats 在势能线段树与吉司机线段树统一框架。 A 吉司机线段树不维护次大值 B 两者是同一框架,核心是次大值分支 + 势能分析保证均摊复杂度 ✓ 正确答案 C 两者是不同算法 D 吉司机线段树与势能无关
# 43. Segment Tree Beats 在维护区间最大、次大与计数的三元组标记。 A cntMax 不用维护 B (max, secondMax, cntMax) 使 chmin 能 O(1) 计算"只改最大值"的和变化 ✓ 正确答案 C 三元组只需 max D 三元组用于范围之外
# 44. 区间历史最值与历史和的 Segment Tree Beats 拓展工程实现。 A 历史最值无需传播 B 只需当前懒标记 C 增加历史懒标记记录历史峰值,push 时用历史标记更新子节点历史最值 ✓ 正确答案 D 历史标记与当前标记无关
# 45. Segment Tree Beats 与普通懒标记线段树的边界中哪些操作仍需 O(log n) 单次而非势能均摊? A 所有操作都势能均摊 B 区间加也需递归 C chmin 每次最坏 O(log n) D 区间加/赋值/求和仍 O(log n) 单次,取最值则势能均摊 ✓ 正确答案
# 46. 扫描线求矩形面积并中为什么用 y 轴离散化加线段树维护覆盖次数,覆盖计数与区间求和的区别? A 无需离散化 B 覆盖长度等于层数之和 C 线段树维护区间和即可 D 覆盖长度 = 层数>0 的区间长度,与"层数求和"不同,需特殊维护非零判定 ✓ 正确答案