令 $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...