\(對於多項式f(x),求一多項式f^(x),使得f(x)f^(x)\equiv 1(mod\ x^n).\\係數對p取模(通常為998244353等原根為2,3的較大的)質數\)
\[假設已經求出(mod\ x^ \rceil})意義下的f(x)的逆元f_0^(x)
\]\[\because f(x)f_0^(x) \equiv 1(mod\ x^ \rceil})
\]\[又\because f(x)f^\equiv1(mod\ x^n)
\]\[\therefore f(x)(f_0^(x)-f^(x))\equiv 0(mod\ x^ \rceil})
\]\[\therefore f_0^(x)-f^(x)\equiv 0(mod\ x^ \rceil})
\]\[\because (f_0^(x)-f^(x))^2\equiv 0(mod\ x^n)
\]\[\therefore (f_0^(x))^2-2f_0^(x)f^(x)+(f^(x))^2\equiv 0(mod\ x^n)
\]\[\because f(x)(f_0^(x))^2-2f(x)f_0^(x)f^(x)+f(x)(f^(x))^2\equiv 0(mod\ x^n)
\]\[\because f(x)f_0^(x)^2-2f_0^(x)+f^(x)\equiv 0(mod\ x^n)
\]\[\therefore f^(x)\equiv f_0^(x)(2-f(x)f_0^(x))(mod\ x^n)
\]\(1. 分治\)
\(2. ntt求乘積\)
\[\\
\]【模板】多項式乘法逆
\[\\
\]\(\mathfrak\)
#include#include#include#includeusing namespace std;
# define read read1()
# define type templatetype inline t read1()
void push(int n)
array(int* l=null,int* r=null)
inline int size()
inline int& operator (const int x)
void resize(int n)
void clear()
void swap()
};int qkpow(int b,int m,int mod)
const int mod=998244353,g=3;
int* ntt(const int len,array& a,const bool ty,int* r=null)}}
return r;
}void rev(array &x,array y)
array inv(array a)
array x;
int n;
int main()
多項式乘法逆
多項式乘法 給定乙個 n 次多項式 f x 求 g x 滿足 f x times g x equiv 1 mod x n 假設有乙個 0 次多項式 f x 易得 f x 為 g x 的逆元,這給我們提供了乙個分治的思路。假設已有 g x equiv f x mod x right rceil 我們分...
任意模數多項式乘法逆
蒟蒻 thesure 剛剛打了任意模數多項式乘法逆的板子 然後 lin4xu 扔來乙個多項式 f x 並 讓 thesure 求出它乘法逆的 x n 項係數對mod取模的結果 lin4xu 知道 thesure 很菜,所以並不想難為 thesure 1.多項式的最高次數不會超過 10 2.f 0 1...
多項式乘法
時間限制 c c 1秒,其他語言2秒 空間限制 c c 262144k,其他語言524288k 64bit io format lld et reo 吃完了元宵,又開始思考數學問題了。這次他拿了兩個多項式 p mathscrp 和 q mathscrq 他知道這兩個多項式的乘積也是乙個多項式,但他不...