模板 多項式求逆

2022-05-20 19:47:10 字數 1651 閱讀 2153

蒟蒻寫題解實在不易

多項式最高次數為度,多項式\(a\)的度記為:\(deg(a)\)

多項式取模的意義:將多項式\(a\)記作余式\(a(x)=q(x)b(x)+r(x)\),則\(a(x)\equiv r(x)(mod~b(x))\)

在有模數\(mod\)的情況下,\(f(x)g(x)\equiv 1 (mod~x^n)\)的具體情況:\(f(x)g(x)\)後次數\(≥n\)的不管,其他除常數項為\(1\)外其他項係數除\(mod\)後為0

\[\begin\\

f(x)g(x)&=q*x^n+1\\

f(x)g(x)&=q'*x^ \rceil}+?\\

?=1:q'&可以通過與q的相乘次數差轉換過來,所以餘數為1\\

\end\]

\[\begin\\

f(x)g(x)&\equiv 1(mod~x^n)\\

f(x)h(x)&\equiv 1(mod~ x^ \rceil}),f(x)g(x)\equiv 1(mod~ x^ \rceil})\\

f(x)(g(x)-h(x))&\equiv 0(mod~ x^ \rceil})\\

g(x)-h(x)&\equiv 0(mod~ x^ \rceil})\\

(g(x)-h(x))^2&\equiv 0(mod~x^n)\\

g(x)^2-2g(x)h(x)+h(x)^2&\equiv 0(mod~x^n)\\

f(x)(g(x)^2-2g(x)h(x)+h(x)^2)&\equiv 0 (mod~x^n)\\

f(x)g(x)\cdot g(x)-(f(x)g(x)\cdot 2h(x)+(f(x)h(x)^2&\equiv 0(mod~x^n)\\

g(x)-2h(x)+f(x)h(x)^2&\equiv 0(mod~x^n)\\

g(x)&\equiv 2h(x)-f(x)h(x)^2(mod~x^n)\\

\end\]

我們可以至底\(x^1\)向上求出\(h(x)\)在更新至\(g(x)\),反覆操作

由於次數在模意義的下次數較大時會消掉,所以我們並不需要每次都\(ntt(x)\)

忽略常數及棧空間,遞迴求解感覺更舒服

#includetypedef long long ll;

const ll mod=998244353,maxn=1e6+9,g=3;

inline ll read()

while(c>='0' && c<='9')

return x*f;

}inline ll pow(ll base,ll b)

return ret;

}ll r[maxn];

inline ll ntt(ll *a,ll n,ll type)

for(ll i=1;i>1]>>1)|((i&1)

for(ll i=0;ig[i]=(2ll-f[i]*g[i]%mod+mod)%mod*g[i]%mod;

ntt(g,limit,-1);

for(ll i=0;ig[i]=g[i]*pow(limit,mod-2)%mod;

for(ll i=n;i}int main()

多項式求逆

你可能覺得這篇部落格很像網上的另一篇,我會告訴你我是抄的無可奉告 w 首先我們來講一些基礎的定義 多項式的度 就是這個多項式的最高次項的次數,記做deg a 對於多項式a x b x 唯一存在多項式q x r x 滿足a x b x q x r x 並且deg r deg b 那麼我們稱q x 為a...

多項式求逆

問題 求多項式 g x 滿足 f x g x equiv 1 pmod q1 這是什麼意思?a1 即 f x g x 最後只有常數項係數為 1 其餘係數都為 0 q2 為什麼要求模 x n a2 這是為了將 n 次方以上的項全都除去,否則 g x 會有無窮多項。用倍增的方法可以 o n log n ...

多項式求逆

給定乙個多項式 f x 請求出乙個多項式 g x 滿足 f x times g x equiv 1 mathrmx n 假設我們已經求得了 g 0 x 滿足 f x times g 0 x equiv 1 mathrmx frac 現在求 f x times g x equiv 1 mathrmx ...