刚学FFT,对它还是不够理解,自己调了好久之后还是不过,但看到第一篇题解里在FFT中加上了下面这个处理就过了就很疑惑
if(type==-1)
for(int i=0;i<lim;++i)
A[i].x/=lim;
这是一开始的FFT代码
void FFT(Complex *A,int type)
{
for(int i=0;i<lim;i++)
if(i<r[i]) swap(A[i],A[r[i]]);
for(int mid=1;mid<lim;mid<<=1)
{
Complex Wn(cos(Pi/mid),type*sin(Pi/mid));
for(int R=mid<<1,j=0;j<lim;j+=R)
{
Complex w(1,0);
for(int k=0;k<mid;k++,w=w*Wn)
{
Complex x=A[j+k];
Complex y=w*A[j+k+mid];
A[j+k]=x+y;
A[j+k+mid]=x-y;
}
}
}
}
求大佬解释qwq