蒟蒻寫題解實在不易
多項式最高次數為度,多項式\(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 ...