您的位置:首页 > 其它

蒟蒻的内心独白

2016-07-09 21:56 190 查看
什么蝴蝶操作什么复数单位根。。老子统统不会

那么怎么办呢,,,当然是什么板子好记背什么板子咯。。。

所以就来个递归版本的吧,,,

#include<bits/stdc++.h>
#define pi acos(-1)
using namespace std;
typedef complex<double> E;
int n,m;
E a[262145],b[262145];
void fft(E *x,int n,int type)
{
if(n==1)return;
E l[n>>1],r[n>>1];
for(int i=0;i<n;i+=2)
l[i>>1]=x[i],r[i>>1]=x[i+1];
fft(l,n>>1,type);fft(r,n>>1,type);
E wn(cos(2*pi/n),sin(type*2*pi/n)),w(1,0),t;
for(int i=0;i<n>>1;i++,w*=wn)
t=w*r[i],x[i]=l[i]+t,x[i+(n>>1)]=l[i]-t;
}
int main()
{
scanf("%d%d",&n,&m);
for(int i=0,x;i<=n;i++)scanf("%d",&x),a[i]=x;
for(int i=0,x;i<=m;i++)scanf("%d",&x),b[i]=x;
m=n+m;for(n=1;n<=m;n<<=1);
fft(a,n,1);fft(b,n,1);
for(int i=0;i<=n;i++)a[i]=a[i]*b[i];
fft(a,n,-1);
for(int i=0;i<=m;i++)
printf("%d ",(int)(a[i].real()/n+0.5));
return 0;
}卡死算我认了,,,,
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: