求第一类斯特林数的一行
考试时太弱了不会。 结果被吊起来打。 学习了一下zzd的 博客 。 首先$O\left( n^2 \right)$的递推十分简单。 但是不够快, 根据$x^{\overline{n}}=\sum_{k=0}^n \left[ n \atop k \right] x^k$ 可以得出$O\left(n log^2n\right)$的分治FFT, 但是不够快, 于是可以倍增地搞。 就是一个$log$的了。 贴上丑陋的代码 #include <bits/stdc++.h> using namespace std; typedef long long ll; const int M=998244353; const int G=3; const int LEN=270000; int rev[LEN],w[LEN]; int L(int x){ return x>=M?x-M:x; } int U(int x){ return x<0?x+M:x; } ll MUL(int x,int y){ return (ll)x*y%M; } int fp(int x,int y){ int ret=1; for (; y; y>>=1,x=MUL(x,x)) if (y&1) ret=MUL(ret,x); return ret; } void NTT(int *a,int len){ for