Codeforces EDU 与 AtCoder Library

共 19 题
#

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 只能用于回文