JZYZOJ 2042 多項式逆元 NTT 多項式

2022-05-25 14:06:12 字數 1303 閱讀 8634

題意:求乙個次數界為n的多項式在模p並模x^m的意義下的逆元。p=7*17*2^23+1。

多項式逆元的含義以及求逆元的方法:

公式推導一下。主要還是ntt的使用,我ntt寫錯了調了半天,太zz了。

1 #include2 #include3 #include4 #include5 #include6 #include7

using

namespace

std;

8#define ll long long

9const ll p=(ll)7*17*(1

<<23)+1;10

const

int maxn=530010

;11 ll a[maxn]={},b[maxn]={},e[maxn]={},zz[20][maxn]={};

12int bel[maxn]={};

13int bt,s,tot=0;14

ll mpow(ll x,ll k)

16 ll z=1;17

while

(k)return

z;22

}23 inline void getit()

24 inline void ntt(ll *c,int n,int

dft)36}

37}38if(dft==-1)42

}43 inline void dontt(ll *c,ll *d,int x,int

y)51 inline void doit(int n,int

m)53 doit(n,(m+1)/2);int siz=(m+1)/2; ++tot;

54for(int i=0;i0;55

for(int i=0;i1][i]*2)%p;b[i]=zz[tot-1

][i];}

56for(int i=min(n,m)-1;i>=0;--i)e[i]=a[i];

57 dontt(zz[tot-1],b,siz,siz); siz=siz+siz-1

;58 dontt(zz[tot-1

],e,siz,min(n,m));

59for(int i=0;i1][i])%p+p)%p;60}

61int

main()

65doit(n,m);

66for(int i=0;i"

%lld

",zz[tot][i]);

67 printf("\n"

);68

return0;

69 }

view code

MATLAB多項式及多項式擬合

多項式均表示為陣列形式,陣列元素為多項式降冪係數 1.polyval函式 求多項式在某一點或某幾個點的值.p 1,1,1 x 2 x 1 x 1,0,1 y polyval p,x 另外求函式在某一點或某幾個點的值可以用函式feval.x 1,0,1 y feval x exp x x 注意用的乘法...

數學 多項式 多項式求逆

多項式求逆 前置知識 ntt 給定乙個多項式 f left x right 求乙個多項式 g left x right 使得 f left x right g left x right equiv 1 left bmod 998244353 right 考慮遞迴求解。假定現在已經求出了 g 0 le...

matlab多項式與非多項式擬合

擬合標準 1 原始資料向量與擬合向量之間的距離最小,該距離的度量一般使用誤差平方和表示,即均方誤差 r q y 22 2 當均方誤差最小時,說明構造的擬合向量與原始向量最為接近,這種曲線擬合的方法稱為最小二乘法 3 計算均方誤差最小時的擬合係數,可以通過微積分中求解極值的方法實現 多項式擬合 1 多...