【模板】多项式乘法(NTT)
题目链接:luogu P3803
题目大意
给你两个多项式,要你求它们的卷积。
思路
这次我们写 NTT 的做法。
它的优点就是它可以取模,而且不会有精度问题,而且会比 FFT 稍微快一点?
然而它的确定就是它的模数比较死板,一般就 998244353 , 1004535809 , 469762049 998244353,1004535809,469762049 998244353,1004535809,469762049 这些。(它们的原根都是 3 3 3)
其实就是考虑用原根代替复数。
因为它是跟单位根有着相同的性质。
然后通过证明,我们可以得到 ω n ≡ g p − 1 n m o d p \omega_n\equiv g^{\frac{p-1}{n}}\mod p ωn≡gnp−1mod

这篇博客介绍了如何运用非交换快速傅里叶变换(NTT)来求解两个多项式的卷积。NTT的优势在于可以取模且避免精度问题,适合于特定模数如998244353。文章详细阐述了NTT的原理,包括原根的概念,以及如何通过单位根的性质进行转换。代码示例中展示了NTT的实现过程,包括原根的计算、NTT的正向和反向变换,最后给出了求解多项式卷积的完整C++代码。
最低0.47元/天 解锁文章
1033

被折叠的 条评论
为什么被折叠?



