日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

多项式对数函数|指数函数(多项式)

發布時間:2023/12/4 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 多项式对数函数|指数函数(多项式) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

多項式對數函數|指數函數

這個思路就是先求導然后再積分,這樣就可以得到一個式子,對于多項式對數函數,我們就可以直接求解了,然后對于多項式指數函數還需要使用分治fft。

多項式對數:

#include<bits/stdc++.h> #define LL long long using namespace std; inline int read() {char x='\0';int fh=1,sum=0;for(x=getchar();x<'0'||x>'9';x=getchar())if(x=='-')fh=-1;for(;x>='0'&&x<='9';x=getchar())sum=sum*10+x-'0';return fh*sum; } const int N=400009; const int mod=998244353; int n,m; inline int ksm(int a,int b) {int sum=1;while(b){if(b&1)sum=1LL*sum*a%mod;b>>=1;a=1LL*a*a%mod;}return sum; } int F[N],G[N],rev[N],l,tt; inline void getl(int len) {for(l=1,tt=0;l<=len;l<<=1)tt++;for(int i=0;i<l;i++) rev[i]=(rev[i>>1]>>1)|((i&1)<<(tt-1)); } inline void NTT(int *P,int op) {for(int i=0;i<l;i++)if(i<rev[i])swap(P[i],P[rev[i]]);for(int i=1;i<l;i<<=1){int wn=ksm(3,(mod-1)/(i<<1));if(op<0)wn=ksm(wn,mod-2);for(int j=0,p=i<<1;j<l;j+=p){for(int k=0,w=1;k<i;k++,w=1ll*w*wn%mod){int x=P[j+k],y=1LL*P[j+i+k]*w%mod;P[j+k]=(x+y)%mod,P[j+i+k]=(x-y+mod)%mod;} }}if(op<0)for(int i=0,u=ksm(l,mod-2);i<l;i++)P[i]=1LL*P[i]*u%mod; } int C[N],D[N]; inline void getinv(int *f,int *g,int n) {if(n==1)return g[0]=ksm(f[0],mod-2),void();getinv(f,g,n>>1);getl(n);for(int i=0;i<n;i++) C[i]=f[i],D[i]=g[i];for(int i=n;i<l;i++) C[i]=D[i]=0; NTT(C,1),NTT(D,1);for(int i=0;i<l;i++) C[i]=1LL*C[i]*D[i]%mod*D[i]%mod; NTT(C,-1);for(int i=0;i<n;i++) g[i]=((2LL*g[i]%mod-C[i])%mod+mod)%mod; } void dao(int *A,int *B,int len) {for(int i=1;i<len;i++)B[i-1]=1LL*i*A[i]%mod;B[len-1]=0; } void jifen(int *A,int *B,int len) {for(int i=1;i<len;i++)B[i]=1LL*A[i-1]*ksm(i,mod-2)%mod;B[0]=0; } int A[N],B[N]; void getln(int *f,int *g,int n) {dao(f,A,n);getinv(f,B,n);getl(n),NTT(A,1),NTT(B,1);for(int i=0;i<l;i++)A[i]=1LL*A[i]*B[i]%mod;NTT(A,-1);jifen(A,g,n); } int main() {n=read();for(int i=0;i<n;i++)F[i]=read();for(m=1;m<=n;m<<=1); getln(F,G,m);for(int i=0;i<n;i++) printf("%d ",G[i]);return 0; }

細節:

  • 首先需要一個封裝好的NTT,然后每次需要重新求解l和rev
  • 對于中間數組需要用到ABCD4個,但是使用過程中不能直接清空,所以在每次使用的時候要將空余的位置設置為0,保證有效位置都是正確的
  • 過程中直接傳遞指針,就可以遞歸求解了。
  • 總結

    以上是生活随笔為你收集整理的多项式对数函数|指数函数(多项式)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 国产精品成人69xxx免费视频 | 日韩不卡在线视频 | 国产一区二区毛片 | 啪啪综合网 | 日韩色一区| 成人毛片大全 | 爱的色放在线 | 黄色三级在线观看 | 日日操夜夜操视频 | 精品人伦一区二区三区蜜桃网站 | 五月婷婷激情视频 | 日本少妇久久久 | 日韩综合一区 | 成片免费观看视频 | 中文在线a∨在线 | 国内精品久久久久久久久久 | 和黑帮大佬的365 | 国产伦精品视频一区二区三区 | 午夜精品久久久久久久99老熟妇 | 黄色高清视频在线观看 | av免费观看入口 | 亚洲男人精品 | 久久久一区二区三区四区 | 亚洲国产精品久 | 黄色大全免费看 | 日韩精品网站 | 中文字幕精品在线观看 | 深夜视频在线 | 东方伊甸园av在线 | 色av中文字幕 | 精品国产乱码久久久久久蜜柚 | 阿的白色内裤hd中文 | 草啪啪| 精品人妻一区二区三区四区久久 | 免费国产黄色网址 | 国产亚洲视频一区 | 免费av在线电影 | 亚洲综合二区 | www插插插| av激情小说| 国产乱子伦精品视频 | 在线人成 | 99re视频在线 | 久久久久免费看 | 少妇人妻丰满做爰xxx | 国产精品福利在线观看 | 黑人巨大精品欧美一区二区免费 | 欧美熟妇乱码在线一区 | 日产电影一区二区三区 | 澳门av在线 | 日本不卡一 | 中文字幕日本一区 | 69网站在线观看 | 干一干操一操 | 日本免费网站在线观看 | 国产精品视频99 | 制服.丝袜.亚洲.中文.综合 | 野花视频在线免费观看 | 国产成人无码久久久精品天美传媒 | 538国产精品一区二区免费视频 | 亚洲综合色视频 | 亚洲精选中文字幕 | 请用你的手指扰乱我吧 | 青青草综合在线 | 奇米一区二区 | 国产精品无码专区av在线播放 | 毛片视| 重口变态虐黄网站 | 四川丰满妇女毛片四川话 | av色婷婷| 91视频黄色| www.激情.com | 成人h片在线观看 | 人人妻人人藻人人爽欧美一区 | 色福利视频 | 日韩精品在线观看视频 | 欧美精品国产一区二区 | 欧美精品色婷婷五月综合 | 五月婷影院 | 成人毛片观看 | 国产91视频在线 | 国产中文欧美日韩在线 | 爱情岛论坛永久入址测速 | 免费在线黄色网 | 日日操天天操 | 日韩亚洲精品视频 | 无码人妻精品一区二区三区99不卡 | 伊人久久艹 | 国产精品无码粉嫩小泬 | 精品二区在线观看 | 中文字幕免费在线看线人动作大片 | 91精品国产一区二区三区 | 91网站免费看| 亚洲性欧美色 | 国产精品区在线观看 | 美丽姑娘免费观看在线观看 | 四色网址 | 91视频分类 | 久久久久久不卡 |