来一发稳的模板
代码能A了uoj34
tip
在做完IDNT之后
不要忘了每个数都要除以n(乘n的逆元)在NTT主体中
这句话超容易写错这里写代码片#include#include #include #include #include #define ll long longusing namespace std;const int N=300005;const ll mod=998244353;ll a[N],b[N];int n,fn,m;ll KSM(ll a,ll b){ ll t=1; while (b) { if (b&1) t=(t*a)%mod; b>>=1; a=(a*a)%mod; } return t;}void NTT(int n,ll *a,int opt){ int i,j=0,k; for (i=0;i j) swap(a[i],a[j]); for (int l=n>>1;(j^=l) >=1); } for (i=1;i <<=1) //每次合并的小区间 { ll wn=KSM(3,(mod-1)/(i<<1)); ///(mod-1)/(i<<1) int m=i<<1; for (j=0;j