亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

FFT多項式快速冪,對于x^num取模,順便再模一個998244353

2019-11-11 06:19:27
字體:
來源:轉載
供稿:網友

多項式快速冪 時間限制 : 60000 MS 空間限制 : 524288 KB

問題描述:

給一個n次多項式,求它的k次方。沒關系,隨手模一個998244353就行了。沒關系,再隨手模一個xm就行了。

輸入格式:

第一行n,意義如上。 第二行n+1個數,a0,a1,…,an,分別是0,1,…,n次項系數。 第三行k,意義如上。 第四行m,意義如上。

輸出格式

一行,b0,b1,…,bm-1,分別是0,1,…,m-1次項系數。

樣例輸入

1 1 1 5 2

樣例輸出

1 5

提示

樣例解釋: (1+x)5 =1+5x+10x2+10x3+5x4+x5 ≡1+5x (mod x2)

數據范圍: n,m<=100000 k<=1018

求逆元和exp的時候要使用牛頓迭代。 這里寫圖片描述

#include<iostream>#include<cstdio>#include<algorithm>#include<cstdlib>#include<cstring>#include<complex>#define ll long longusing namespace std;template <typename T>inline void _read(T& x){ char t=getchar();bool sign=true; while(t<'0'||t>'9') {if(t=='-')sign=false;t=getchar();} for(x=0;t>='0'&&t<='9';t=getchar())x=x*10+t-'0'; if(!sign)x=-x;}const int p=998244353;const int g=3;int mont(int x,int y){ ll ANS=1; for(x%=p;y;y>>=1,x=1LL*x*x%p){ if(y&1)ANS=1LL*ANS*x%p; } return int(ANS); }int fft_wi[300005];void fft(int A[],int n,int ty){ int i,j,k,m,t0,t1; for(i=0;i<n;i++){ for(j=0,k=i,m=1;m<n;m<<=1,j=(j<<1)|(k&1),k>>=1); if(i<j)swap(A[i],A[j]); } fft_wi[0]=1; for(m=1;m<n;m<<=1){ t0=mont(g,p-1+ty*(p-1)/(m<<1)); for(i=1;i<m;i++)fft_wi[i]=1LL*fft_wi[i-1]*t0%p; for(k=0;k<n;k+=(m<<1)){ for(i=k;i<k+m;i++){ t0=A[i]; t1=1LL*A[i+m]*fft_wi[i-k]%p; A[i]=t0+t1;if(A[i]>=p)A[i]-=p; A[i+m]=t0-t1;if(A[i+m]<0)A[i+m]+=p; } } } if(ty==1)return; t0=mont(n,p-2); for(i=0;i<n;i++){ A[i]=1LL*A[i]*t0%p; } }int d[300005],e[300005];void multi(int A[],int B[],int C[],int la,int lb){ int i,j,k,t,N; memset(d,0,sizeof(d)); memset(e,0,sizeof(e)); for(i=0;i<la;i++)d[i]=A[i]; for(i=0;i<lb;i++)e[i]=B[i]; N=1; while(N<=(la+lb+1))N<<=1; fft(d,N,1); fft(e,N,1); for(i=0;i<N;i++)d[i]=1ll*d[i]*e[i]%p; fft(d,N,-1); for(i=0;i<la+lb-1;i++)C[i]=d[i]; for(i=la+lb-1;i<N;i++)C[i]=0;}int inv_c[300005];void inv(int A[],int B[],int la,int lb){ memset(inv_c,0,sizeof(inv_c)); int i,j,k,t,n,m; B[0]=mont(A[0],p-2); for(m=1;m<lb;m<<=1){ n=m<<1; for(i=0;i<n;i++)inv_c[i]=A[i]; for(n<<=1;i<n;i++)inv_c[i]=0; for(i=m;i<n;i++)B[i]=0; fft(inv_c,n,1); fft(B,n,1); for(i=0;i<n;i++)inv_c[i]=p+2-1ll*inv_c[i]*B[i]%p; for(i=0;i<n;i++)inv_c[i]=(inv_c[i]%p+p)%p; for(i=0;i<n;i++)B[i]=1ll*B[i]*inv_c[i]%p; fft(B,n,-1); } for(i=lb;i<n;i++)B[i]=0;}int ln_c[300005],ln_d[300005],ln_e[300005];void ln(int A[],int B[],int la,int lb){ int i,j,k,t,n; n=1; while(n<la||n<lb)n<<=1; memset(ln_c,0,sizeof(ln_c)); memset(ln_d,0,sizeof(ln_d)); memset(ln_e,0,sizeof(ln_e)); for(i=0;i<la;i++)ln_c[i]=A[i]; inv(ln_c,ln_d,la,n); for(i=1;i<la;i++)ln_c[i-1]=1ll*A[i]*i%p; for(i=la-1;i<n;i++)ln_c[i]=0; multi(ln_d,ln_c,ln_e,n,la-1); for(i=2,ln_c[1]=1;i<lb;i++)ln_c[i]=1ll*(p-p/i)*ln_c[p%i]%p; for(i=1;i<lb;i++)B[i]=1ll*ln_e[i-1]*ln_c[i]%p; B[0]=0; for(i=lb;i<n;i++)B[i]=0;}int exp_c[300005],exp_d[300005];void exp(int A[],int B[],int la,int lb){ int i,j,k,t,n,m; for(m=1;m<lb;m<<=1){ n=(m<<1); ln(B,exp_c,m,n); exp_d[0]=1; for(i=1;i<n;i++)exp_d[i]=0; for(i=0;i<n;i++)exp_d[i]+=A[i]; for(i=0;i<n;i++)if(exp_d[i]>=p)exp_d[i]-=p; for(i=0;i<n;i++)exp_d[i]-=exp_c[i]; for(i=0;i<n;i++)if(exp_d[i]<0)exp_d[i]+=p; multi(B,exp_d,exp_c,m,n); for(i=0;i<n;i++)B[i]=exp_c[i]; }}int poly_d[300005],poly_e[300005];void poly_mont(int A[],int C[],ll num,int la,int lc){ int i,j,k,t,N,ld,le; ln(A,poly_d,la,lc); t=num%p; for(i=0;i<lc;i++)poly_d[i]=1ll*poly_d[i]*t%p; C[0]=mont(A[0],num%(p-1)); exp(poly_d,C,lc,lc); }int a[300005],b[300005];int main(){ int i,j,la,lb; ll k; cin>>la;la++; for(i=0;i<la;i++){ _read(a[i]); } cin>>k>>lb; poly_mont(a,b,k,la,lb); for(i=0;i<lb;i++){
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
色妞一区二区三区| 亚洲最新av网址| 亚洲人成在线观看| 亚洲香蕉伊综合在人在线视看| 高清欧美性猛交| 日本精品一区二区三区在线播放视频| 欧美日韩成人黄色| 亚洲综合精品伊人久久| 91久久嫩草影院一区二区| 久久精品国产电影| 久久99精品久久久久久噜噜| 日韩精品免费在线视频观看| 久久精品国产一区二区电影| 亚洲人免费视频| 国产精品露脸av在线| 成人信息集中地欧美| 91在线视频免费| 国产日韩欧美中文| 欧美视频一二三| 久久国产精品影片| 91在线免费网站| 欧美极品美女视频网站在线观看免费| 国产精品久久久久久久9999| 精品中文字幕久久久久久| 一本色道久久88精品综合| 欧美影院久久久| www.日韩系列| 亚洲欧美日韩在线一区| 日韩高清av一区二区三区| 亚洲午夜未删减在线观看| 欧美性一区二区三区| 久久久精品在线| 成人看片人aa| zzjj国产精品一区二区| 色偷偷av一区二区三区乱| 成人免费看吃奶视频网站| 亚洲一区二区三区sesese| 精品性高朝久久久久久久| 欧美成人免费一级人片100| 欧美日韩美女在线观看| 国产成人一区二区三区小说| 久久久999国产精品| 久久久久久久久久久久久久久久久久av| 福利视频一区二区| 欧美精品激情blacked18| 久久国产天堂福利天堂| 国产精品免费一区二区三区都可以| 美日韩精品免费观看视频| 久久五月天综合| 日韩精品免费在线视频观看| 91精品国产成人| 国产精品一区二区av影院萌芽| 97超级碰碰人国产在线观看| 日韩精品在线影院| 在线视频国产日韩| 亚洲图片欧美午夜| 欧美放荡办公室videos4k| 欧美一级bbbbb性bbbb喷潮片| 琪琪第一精品导航| 国产精品爽爽爽| 伊人精品在线观看| 一区二区欧美激情| 亚洲一区二区久久久久久| 琪琪第一精品导航| 亚洲成人久久久| 亚洲性无码av在线| 性亚洲最疯狂xxxx高清| 欧美自拍视频在线| 91av在线播放| 91免费高清视频| 日韩人体视频一二区| 欧美久久精品一级黑人c片| 亚洲第一免费播放区| 国产婷婷成人久久av免费高清| 国产精品入口日韩视频大尺度| 狠狠躁18三区二区一区| 国产成人精品免费视频| 精品五月天久久| 两个人的视频www国产精品| 国产精品高清免费在线观看| 日韩av大片免费看| 亚洲国产成人久久综合| 538国产精品一区二区免费视频| 欧美日韩另类在线| 欧美激情高清视频| www.久久草.com| 精品国内亚洲在观看18黄| 亚洲大胆人体av| 精品视频久久久久久| 日韩欧美国产中文字幕| 国产成人精品日本亚洲| 亚洲精品成人久久电影| 91精品国产色综合久久不卡98口| 亚洲视频欧美视频| 一区二区日韩精品| 欧美日韩国产成人高清视频| 久久久久久久激情视频| www.日韩系列| 久久久亚洲精选| 视频在线一区二区| 国产精品视频26uuu| 在线性视频日韩欧美| 欧美黄色片免费观看| 国产成人精品在线视频| 国产精品麻豆va在线播放| 91伊人影院在线播放| 日本乱人伦a精品| 国产日韩欧美在线播放| 97在线观看免费| 欧美成人一二三| 国内外成人免费激情在线视频| 国产suv精品一区二区三区88区| 欧美精品免费在线观看| 国产69久久精品成人看| 欧美在线视频导航| 黑人狂躁日本妞一区二区三区| 91国在线精品国内播放| 日韩欧美999| 日韩国产欧美精品一区二区三区| 最新日韩中文字幕| 亚洲国产精彩中文乱码av| 国产精品精品久久久久久| 欧美亚洲成人精品| 夜夜嗨av色一区二区不卡| 国产精品99蜜臀久久不卡二区| 亚洲精品www久久久久久广东| 国内精品久久久久久中文字幕| 日韩精品免费观看| 日韩在线视频中文字幕| 久久视频免费在线播放| 色悠悠久久久久| 2019中文字幕在线免费观看| 日本在线精品视频| 国产mv免费观看入口亚洲| 欧美激情一区二区三区在线视频观看| 最新国产精品拍自在线播放| 91av免费观看91av精品在线| 国产精品视频白浆免费视频| 午夜精品一区二区三区av| 日韩风俗一区 二区| 国产视频亚洲视频| 成人a视频在线观看| 日韩精品高清在线观看| 欧美午夜宅男影院在线观看| 国产成人精品亚洲精品| 亚洲欧美一区二区三区久久| 国产精品吹潮在线观看| 精品久久久久久中文字幕一区奶水| 亚洲人成网7777777国产| 热re91久久精品国99热蜜臀| 国产亚洲欧洲黄色| 136fldh精品导航福利| 国产一区二区日韩精品欧美精品| 亚洲精品在线91| 国产亚洲欧洲高清| 欧美在线观看视频| 超碰精品一区二区三区乱码| 亚洲欧美在线磁力| 日本午夜精品理论片a级appf发布| 日韩免费看的电影电视剧大全| 91免费高清视频| 国产日韩精品入口| 亚洲一区亚洲二区| 亚洲色图35p|