https://www.luogu.org/problemnew/show/P1919
分析
可以把一个数化为多项式的系数,如233
3+3x+2x^2
然后便可以进行快速傅里叶转换了
注意进位
#include#include #include #include using namespace std;typedef complex cn;const int N=262144;const double pi=3.14159265358979;int rev[N];cn a[N],b[N];int n,mx,bit;bool p;void Get_Rev(int mx) { for (int i=0;i >1]>>1)|((i&1)< '9'); a[n-1-i]=(double)c-48; } for (int i=0;i '9'); b[n-1-i]=(double)c-48; } n--; mx=1;while (mx<=2*n) mx<<=1,bit++; Get_Rev(mx); FFT(a,1);FFT(b,1); for (int i=0;i 0) mx++; } for (int i=mx;i>=0;i--) if (p||a[i].real()>0) printf("%d",(int)(a[i].real()+0.5)),p=1;}