FFT快速傅里叶

来源:互联网 发布:刚柔流空手道 知乎 编辑:程序博客网 时间:2024/06/16 08:32

传送门
表示只会抄板子,看了个半懂。。
我因为重载运算符出了点儿问题,调了好久好久……
贴代码:

#include<cstdio>#include<cstring>#include<iostream>#include<cmath>#include<algorithm>#include<cstdlib>using namespace std;inline int read(){    int x=0;char ch=' ';int f=1;    while(ch!='-'&&(ch<'0'||ch>'9'))ch=getchar();    if(ch=='-')f=-1,ch=getchar();    while(ch>='0'&&ch<='9')x=(x<<3)+(x<<1)+(ch^48),ch=getchar();    return x*f;}const int N=2e5+5;const double pi=acos(-1);struct cp{    double r,i;    cp(){}    cp(double _r,double _i):r(_r),i(_i){}    friend cp operator + (const cp& a,const cp& b){return cp(a.r+b.r,a.i+b.i);}    friend cp operator - (const cp& a,const cp& b){return cp(a.r-b.r,a.i-b.i);}    friend cp operator * (const cp& a,const cp& b){return cp(a.r*b.r-a.i*b.i,a.r*b.i+a.i*b.r);}}a[N],b[N];int n,L,R[N],c[N];char ch[N];inline void FFT(cp *a,int f){    for(int i=0;i<n;++i)if(i<R[i])swap(a[i],a[R[i]]);    for(int i=1;i<n;i<<=1){        cp wn(cos(pi/i),f*sin(pi/i));        for(int j=0;j<n;j+=(i<<1)){            cp w(1,0);            for(int k=0;k<i;++k,w=w*wn){                cp x=a[j+k],y=w*a[j+k+i];                a[j+k]=x+y;a[j+k+i]=x-y;            }        }    }    if(f==-1)for(int i=0;i<n;++i)a[i].r/=n;}int main(){    n=read()-1;    scanf("%s",ch);for(int i=0;i<=n;++i)a[i].r=ch[n-i]-'0';    scanf("%s",ch);for(int i=0;i<=n;++i)b[i].r=ch[n-i]-'0';    int m=(n<<1);for(n=1;n<=m;n<<=1)++L;    for(int i=0;i<n;++i)R[i]=(R[i>>1]>>1)|((i&1)<<(L-1));    FFT(a,1);FFT(b,1);    for(int i=0;i<=n;++i)a[i]=a[i]*b[i];    FFT(a,-1);    for(int i=0;i<=m;++i)c[i]=(int)(a[i].r+0.5);    for(int i=0;i<=m;++i)if(c[i]>=10){c[i+1]+=c[i]/10;c[i]%=10;if(i==m)++m;}    while(m){if(c[m])break;else m--;}    while(~m)putchar(c[m--]+'0');    return 0;}
阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 心理培训体会 敬老院心得体会 计算机学习体会 化验室心得体会 听课体会怎么写 学习班心得体会 普法学习体会 工作学习体会 学习的心得体会 心得报告 师德师风心得体会 党课学习心得体会 金融行业心得体会 正风肃纪心得体会 社会实践心得体会 坚定信念心得体会 警示教育心得体会 研学旅行心得体会 担当作为心得体会 脱贫攻坚心得体会 理想信念心得体会 拓展训练心得体会 观看榜样心得体会 守初心担使命体会 团队精神心得体会 教师学习心得体会 教师培训心得体会 幼儿教师心得体会 礼仪培训心得体会 创业培训心得体会 家访教师心得体会 团日活动心得体会 幼师学习心得体会 集中学习心得体会 暑期培训心得体会 团队培训心得体会 培训学习心得体会 素质拓展心得体会 企业培训心得体会 高效课堂心得体会 入职培训心得体会