1 条题解
-
0
「多项式多点求值」题解
题意简化
给定 次多项式:
和 个点:
$$x_k = b \cdot c^{4k} + d \cdot c^{2k} + e, \quad k=0,1,\dots,n-1 $$要求计算 ,模 。
核心观察
直接对每个 暴力计算 是 , 不可行。
关键点:
- 有特殊形式:
- 设 ,则
- 构成等比数列:
优化思路
方法:利用多项式复合和快速求值
-
定义新多项式: 令 ,则 是一个二次函数。
-
多项式复合: 我们实际上需要计算:
$$f(g(y)) \quad \text{其中} \quad g(y) = b y^2 + d y + e $$ -
快速多点求值: 已知 是等比数列,对于多项式 ,我们需要计算:
其中 ,。
-
利用卷积: 如果 ,那么:
这可以看作两个序列的卷积:
-
Chirp Z-transform(CZT): 计算 正是CZT变换,可以用FFT在 完成。
算法步骤
- 计算
- 多项式复合:计算 ,即把 中的 替换为
- 由于 是二次, 的次数是
- 可以用多项式复合的算法,或直接展开
- 多点求值:计算 ,其中
- 使用CZT变换,
- 输出结果
复杂度
- 多项式复合:
- CZT变换:
- 总复杂度:,可过
注意事项
- 模数 是质数,可用NTT
- 注意 的快速幂计算
- 边界情况: 时 是一次函数,更简单
- 1
信息
- ID
- 5987
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者