luoguP4238 模板 多項式求逆

2021-10-09 14:01:13 字數 1164 閱讀 1803

令 $b_(x)$ 表示 $a_(x)$ 在 % $x^$ 下的逆

那麼有 $b_(x)=2b_}(x)-ab^_}(x)$

遞迴一下即可

在 $len=1$ 時直接對常數項求逆即可

這裡一定要注意!!!!!!!

取逆的時候是預設 % $x^$ 的,所以如果在多項式後面多加幾個 0 的話逆是會變的!!!

因為模數改變了!!!!!!!

code: 

#include #include #include #include #include #define setio(s) freopen(s".in","r",stdin)    

typedef long long ll;

const int maxn=1000005;

const ll mod=998244353;

using namespace std;

ll qpow(ll base,ll k)

ll inv(ll a)

void ntt(ll *a,int len,int flag)

for(int mid=1;mida;

int len;

poly(){}

void clear()

void rev()

void push(int x)

void getinv(poly &b,int n)

getinv(b,n>>1);

int t=n<<1,lim=min(len,n);

for(int i=0;ifor(int i=lim;ifor(int i=0;ifor(int i=b.len;intt(a,t,1), ntt(b,t,1);

for(int i=0;intt(a,t,-1);

for(int i=0;ifor(int i=b.len;ib.len=n;

} poly inv()

}po[4];

void checkinv()

int main()

Luogu 4238 模板 多項式求逆

瘋狂補板中。考慮倍增實現。假設多項式只有乙個常數項,直接對它逆元就可以了。現在假如要求 g x f x g x equiv 1 mod x n 而我們已經求出了 h x f x h x equiv 1 mod x right rceil 兩式相減,f x g x h x equiv 0 mod x ...

洛谷P4238 模板 多項式求逆

題目傳送門 題目分析 放個板子在blog上,以後複習的時候用。注意每一次呼叫poly rev 的時候都要重新計算一遍rev陣列,而且要先清0。求modxm modx m下的逆元的時候,注意ntt的次數界要開到2m,因為a x g2 x a x g2 x 的次數界加起來為m m2 m 2 2 2m 2...

洛谷P4238 模板 多項式乘法逆

給定乙個多項式 f x 請求出乙個多項式 g x 滿足 f x g x equiv 1 mathrm x n 係數對 998244353 取模。n leq 10 5 假設我們已經知道了 f x g x equiv 1 pmod 考慮如何推廣到 f x g x equiv 1 pmod 首先顯然有 g...