[整理]多项式板子


闲得没事整理了一下,应该没什么大问题。

namespace Poly {
  il int Pow(int a,int b=p-2){
    int res=1;
    for(;b;a=(LL)a*a%p,b>>=1)if(b&1)res=(LL)res*a%p;
    return res;
  }
  int len,w[N];
  il void Init(int n){
    len=1;while(len<=n)len<<=1;
    for(int i=2;i<=len;i<<=1){
      int wn=Pow(g,(p-1)/i),m=i>>1;w[m]=1;
      for(int j=m+1;j=2;i>>=1){
      int m=i>>1;
      for(int j=0;j>1;
      for(int j=0;j>1),Init(n+n);
    for(int i=0;i<=n;i++)Ta[i]=f[i],Tb[i]=g[i];
    for(int i=n+1;i>1),Ln(g,Tj,n),Init(n+n);
    for(int i=0;i<=n;i++)Th[i]=f[i],Ti[i]=g[i];
    DFT(Th,len),DFT(Ti,len),DFT(Tj,len);
    for(int i=0;i