# 1. FFT 的核心思想中系数表示与点值表示的转换、单位根的性质、分治(蝶形运算)如何把卷积降到 O(n log n)? A 点值相乘是 O(n^2) B 单位根的性质使点值表示下相乘为 O(n) ✓ 正确答案 C 不需要求值 D 系数直接相乘
# 2. Karatsuba 分治乘法中如何用三次半长乘法把复杂度降到 O(n^1.585),与朴素乘法、FFT 的工程分界阈值 A 用 FFT 求值 B 减少加法 C 用三次半长乘法替代四次 ✓ 正确答案 D 用 CRT
# 4. Schönhage-Strassen 在 GNU MP、Boost.Multiprecision 的工程案例。 A 小整数乘法 B 超大规模整数乘法(位数极大时) ✓ 正确答案 C 素性测试 D 求最大公约数
# 5. FFT 的逆变换与归一化中为什么 IDFT 需要除以 n,以及位逆序重排(bit-reversal)在实现中的必要性? A 单位根是复数 B DFT 矩阵的逆是共轭转置除以 n ✓ 正确答案 C 需要取模 D 需要四舍五入
# 6. Schönhage-Strassen 的费马数模中选 2^n+1 做循环卷积、负循环卷积如何避免结果溢出 A 2 是 2n 次单位根且乘法可快速移位 ✓ 正确答案 B 不需要逆变换 C 模数是素数且很小 D 结果总是整数
# 7. Toom-3 与 Karatsuba、FFT 的关系中中间复杂度层级 O(n^1.465) 的构造思路与适用规模 A O(n^1.585) B O(n^1.465) ✓ 正确答案 C O(n log n) D O(n^2)
# 10. FFT 的浮点精度问题中大整数乘法要避免直接 FFT,位长与误差累积的关系,如何用三次变换(拆分)降低误差? A FFT 是近似算法 B 需要除法 C 单位根不精确 D 位长越大系数越大,浮点舍入误差累积 ✓ 正确答案
# 11. NTT 与原根中为什么取模 998244353(2^23*119+1)这类 NTT 友好素数,原根与单位根的对应关系? A 它是偶数 B p-1 含大因子 2^23,可支持长度 2^23 的 NTT ✓ 正确答案 C 它很小 D 它是费马数
# 12. 卷积的工程场景中字符串匹配(带通配符)、多项式乘法、高精度乘法、生成函数计数如何统一为卷积问题? A 卷积结果的最大值 ✓ 正确答案 B 卷积的平均值 C 卷积的最小值 D 卷积的相关系数达到特定值
# 14. FFT 的蝶形运算与位逆序中迭代实现的 in-place 写法? A a[k] = u * v B a[k] = u + v, a[k+len/2] = u - v ✓ 正确答案 C a[k] = u - v D a[k] = u / v
# 15. NTT 逆变换的实现中为什么 invNTT 用原根的逆元并最后除以 n,与 FFT 的归一化对称? A 原根是 3 B DFT 矩阵逆含 1/n 因子,与 FFT 归一化对称 ✓ 正确答案 C 需要进位 D 需要取模
# 17. MTT/任意模数 NTT 中两个模数 + CRT 还原的原理,为什么比 FFT 更精确但更慢? A 用复数 B 全程整数运算无浮点误差,CRT 精确还原 ✓ 正确答案 C 用更多位 D 用更小规模
# 18. NTT 求卷积的模数限制中必须用 NTT-friendly 素数,普通模数如何绕过? A 直接 NTT B 用费马小定理 C 多模数 NTT + CRT 还原 ✓ 正确答案 D 用 BSGS
# 20. 小规模乘法的阈值中 n 很小时朴素 O(n²) 快于 FFT/NTT,工程库如何用阈值切换算法 A 朴素乘法更精确 B 朴素乘法常数小,FFT 固定开销大 ✓ 正确答案 C 朴素乘法更简单 D 朴素乘法无误差