# 1. 二分答案(binary search on answer)的判定函数设计中如何证明可行性单调,为什么最小化最大值与最大化最小值都能二分? A 可行性不单调也能二分 B 判定函数必须是 O(1) 复杂度 C 二分答案只适用于排序数组 D 关键是把最优值转化为判定问题,且可行性关于阈值单调,最小化最大值二分上界、最大化最小值二分下界 ✓ 正确答案
# 2. 二分查找的边界变体中 lower_bound/upper_bound、第一个与最后一个满足条件元素及旋转数组的写法差异 A 变体差异在于"不变量"与收缩方向,lower_bound 找第一个 >= x,找第一个满足用 P(mid) 时收缩 hi ✓ 正确答案 B lower_bound 与 upper_bound 的唯一区别是返回值 +1 C lower_bound 和 upper_bound 定义完全相同 D 旋转数组无法二分查找
# 3. CSES Problem Set Range Query 章节在稀疏表与树状数组与线段树的工程实现。 A 稀疏表支持单点更新和最值查询 B 线段树查询复杂度是 O(1) C 树状数组支持区间更新和区间查询,无需任何额外技巧 D 稀疏表 O(1) 查询适合静态区间最值,树状数组适合单点更新+前缀查询,线段树支持区间更新+区间查询 ✓ 正确答案
# 4. 二分答案与倍增模板中如何用二进制拆分处理区间查询与在线问题? A 倍增用二进制拆分把"跳 k 步"分解为 O(log n) 次幂跳跃,适合在线查询;二分答案离线判定最优值 ✓ 正确答案 B 倍增只能用于数组,不能用于树 C 二分答案和倍增做的是同一件事 D 倍增查询需要 O(n) 时间
# 5. ACL lazysegtree 的四个参数中 op/e/mapping/composition 如何抽象区间修改与查询,普通线段树为何是特例 A op 定义合并、e 定义单位元、mapping 定义标记作用、composition 定义标记合成,普通线段树是其恒等映射的特例 ✓ 正确答案 B 四个参数都必须为 sum 才能工作 C mapping 只作用于叶子,不作用于内部节点 D 普通线段树不能由 lazysegtree 表示
# 6. AtCoder Library 的常用模块中 convolution、lazysegtree、DSU、SCC 的接口与复杂度? A SCC 只能处理无向图 B convolution 是 O(n^2) C DSU 的 find 是 O(n) D convolution 用 NTT O(n log n),lazysegtree 区间操作 O(log n),DSU 均摊 O(α(n)),SCC O(n+m) ✓ 正确答案
# 7. ACL 的 convolution 实现为什么限定 mod 998244353 等 NTT 友好素数,传入任意模数时内部如何处理? A 998244353 是 NTT 友好素数(p-1 含大 2 的幂),任意模数时用多个 NTT 友好素数做卷积再用 CRT 合并 ✓ 正确答案 B 任意模数直接做 NTT 即可 C 任意模数则无法卷积,只能暴力 D NTT 对模数没有要求
# 8. EDU 二分与倍增思想中如何用"可行性单调"统一处理最优值问题? A 二者要求问题必须是指数级的 B 二分答案不需要单调性 C 倍增只能用于二分答案后的判定 D 二分答案依赖可行性单调,倍增依赖步长可二进制分解,二者互补覆盖最优值与路径类问题 ✓ 正确答案
# 9. ACL 在 convolution 与 FFT/NTT 的工程接口。 A 调用方必须自己实现 NTT 蝶形运算 B 接口只支持整数,不支持多项式 C convolution(a,b) 返回卷积向量,内部自动选择 NTT/CRT/朴素实现,对调用方透明 ✓ 正确答案 D convolution 的复杂度是 O(n^2)
# 10. ACL 在 maxflow 与 mincostflow 与 scc 与 twosat 的工程接口。 A mincostflow 只能处理无费用流 B maxflow 用 Floyd-Warshall 实现 C twosat 不依赖 SCC D maxflow 用 Dinic,mincostflow 用最短路增广(SSP),scc 用 Tarjan,twosat 用 SCC 判定 ✓ 正确答案
# 11. ACL 在 segment tree 与 lazy segment tree 的工程接口。 A segtree 单点更新+区间查询,lazysegtree 区间更新+区间查询,均通过 op/e/mapping 参数抽象 ✓ 正确答案 B segtree 支持区间更新,lazysegtree 只支持单点更新 C 用户必须手动实现递归合并 D 两者查询都是 O(n)
# 12. ACL 在 ACL Contest 的实战工程实现。 A 实战中按问题类型选择 ACL 模块,并注意复杂度、模数友好性与参数性质 ✓ 正确答案 B 题目要求选手全部手写数据结构,不能使用 ACL C ACL 只能用于卷积题 D ACL Contest 不涉及任何 ACL 模块
# 13. Codeforces EDU 二分查找章节在单峰与单调与旋转的工程实现。 A 三分需要单调性 B 单峰序列也能用标准二分 C 旋转数组无法二分 D 单调序列用二分,单峰序列用三分求极值,旋转数组用分段有序二分 ✓ 正确答案
# 14. CSES Problem Set Geometry 章节在凸包与旋转卡壳与圆交的工程实现。 A 旋转卡壳的复杂度是 O(n^2) B 凸包用 Andrew 单调链 O(n log n),旋转卡壳在凸包上 O(n) 求直径/最远点对 ✓ 正确答案 C 凸包必须用暴力 O(n^2) 算法 D 圆交不需要分情况讨论
# 15. Codeforces EDU HLD 章节在路径查询与子树查询的工程实现。 A HLD 用 DFS 序把树映射到数组,路径查询分解为 O(log n) 段区间,子树查询是连续区间 ✓ 正确答案 B 子树查询需要跳多条重链 C 路径查询复杂度是 O(1) D HLD 只能处理链,不能处理子树
# 16. Codeforces EDU Suffix Automaton 章节在子串查询的工程实现。 A SAM 是接受所有子串的最小 DFA,O(n) 构造,子串出现次数与不同子串数可通过状态与拓扑序计算 ✓ 正确答案 B SAM 的构造复杂度是 O(n^2) C SAM 只能查询最长公共子串,不能统计出现次数 D SAM 状态数是指数级
# 17. 竞赛库与工程库的差异中 ACL 与 STL 在内存/异常/可读性上的取舍? A 两者目标完全一致 B 竞赛库追求速度与简洁(静态数组、无异常),工程库追求健壮性、异常安全与可维护性 ✓ 正确答案 C 竞赛库必须使用异常处理 D 工程库应牺牲正确性换取速度
# 18. ACL 的数论函数中 floor_sum、inv、pow_mod、cr 的用途与复杂度,如何与扩展欧几里得衔接 A floor_sum 是 O(n) B inv 只能用暴力枚举 C pow_mod 快速幂、inv 求逆元(素数用费马小定理、否则扩展欧几里得)、floor_sum 类欧几里得、cr 合并同余 ✓ 正确答案 D cr 与扩展欧几里得无关
# 19. ACL 的 string 模块中 suffix_array、lcp_array、z_algorithm 的接口与典型组合用法 A z_algorithm 的复杂度是 O(n^2) B lcp_array 不需要 suffix_array C suffix_array 求后缀次序 O(n log n),lcp_array 求相邻后缀 LCP,z_algorithm 求每个位置与开头的 LCP;三者常组合用于子串统计与匹配 ✓ 正确答案 D suffix_array 只能用于回文