快速多项式全家桶
加法
求\(H(x)=F(x)+G(x)\)
Sol:
直接加,\(O(n)\)。
乘法
求\(H(x)=F(x)G(x)\)
Sol:
直接上\(\mathrm{FFT}\)或者\(\mathrm{NTT}\),\(O(n\log n)\)。
求导&积分
同暴力多项式全家桶部分,略。\(O(n)\)。
求逆
\(F(x)G(x)\equiv 1\pmod{x^n}\)
求\(G(x)\)。
Sol:
化式子:\(\frac{1}{G(x)}-F(x)=0\)。
首先\([x^0]G(x)=\frac{1}{[x^0]F(x)}\)很好求。
然后带入牛顿迭代的式子得到:
化简一下得到:
即\(G_{k+1}(x)\equiv G_k(x)(2-G_k(x)F(x))\pmod{x^{2k+1}}\)
倍增即可。\(O(n\log n)\)。
取模
\(F(x)=Q(x)G(x)+R(x)\)
求\(Q(x),R(x)\)。
Sol:
设\(n=\deg F,m=\deg G\)
那么\(\deg Q=n-m,\deg R=m-1\)
设\(rF(x)=x^nF(\frac{1}{x})\),即把\(F(x)\)的系数翻转后的函数。
同理有\(rG(x)=x^mG(\frac{1}{x}),rQ(x)=x^{n-m}Q(\frac{1}{x})\)。
容易得到\(rF(x)\equiv rQ(x)rG(x)\pmod{x^{n-m+1}}\)
证明上式:
由\(F(x)=Q(x)G(x)+R(x)\),
知\(F(\frac{1}{x})=Q(\frac{1}{x})G(\frac{1}{x})+R(\frac{1}{x})\),
于是\(x^nF(\frac{1}{x})=x^{n-m}Q(\frac{1}{x})x^mG(\frac{1}{x})+x^nR(\frac{1}{x})\)
这也就是\(rF(x)=rQ(x)rG(x)+x^{n-m+1}R(x)\)。
注意到\(x^{n-m+1}R(x)\)的最低次项的次数不低于\(n-m+1\),且\(n-m+1>n-m=\deg Q\)
故\(rF(x)\equiv rQ(x)rG(x)\pmod{x^{n-m+1}}\)
于是通过求逆就可以求出\(rQ(x),Q(x)\),更进一步将\(Q(x)\)代入原式便可算出\(R(x)\)。
\(O(n\log n)\)。
开根
\(G^2(x)\equiv F(x)\pmod{x^n}\)
求\(G(x)\)。
Sol:
化式子:\(G^2(x)-F(x)\equiv 0\pmod{x^n}\)
带入牛顿迭代的式子:
直接求就可以,或者再稍微化简:
关于\([x^0]G(x)\)的讨论同暴力多项式全家桶部分,不再赘述。
\(O(n\log n)\)。
\(\ln\)
\(G(x)\equiv \ln F(x)\pmod{x^n}\)
保证\(f_0=1\),求\(G(x)\)。
Sol:
两边求导:\(G'(x)=F'(x)F^{-1}(x)\)
求出\(G'(x)\),再积回去即可,注意\(g_0=\ln f_0=0\)。
\(\exp\)
\(G(x)\equiv e^{F(x)}\pmod{x^n}\)
保证\(f_0=0\),求\(G(x)\)。
Sol:
两边取\(\ln\)再化简得\(\ln G(x)-F(x)\equiv 0\pmod{x^n}\)
代入牛顿迭代式子有:
化简得到:
\(O(n\log n)\)。
注意这里要多次求\(\ln\),记得清空。
三角函数
同暴力多项式全家桶部分套用公式,并使用多项式\(\exp\)即可。不再赘述。
或许要用个二次剩余。

浙公网安备 33010602011771号