hdu1402 大数相乘 快速傅里叶变换FFT

FFT入门题,FFT模板

#include 
#include 
#include 
#include 
#include 
#include 
using namespace std;
#define N 50500*2
const double PI=acos(-1.0);
struct Vir
{
    double re,im;
    Vir(double _re=0.,double _im=0.):re(_re),im(_im){}
    Vir operator*(Vir r) { return Vir(re*r.re-im*r.im,re*r.im+im*r.re);}
    Vir operator+(Vir r) { return Vir(re+r.re,im+r.im);}
    Vir operator-(Vir r) { return Vir(re-r.re,im-r.im);}
};
void bit_rev(Vir *a,int loglen,int len)
{
    for(int i=0;i>=1;
        }
        if(p=0?a[j]-'0':0.,0.);
        for(int i=0,j=lenb-1;i=0?b[j]-'0':0.,0.);
        for(int i=0;i<=n;++i) ans[i]=0;

        FFT(pa,loglen,n,1);
        FFT(pb,loglen,n,1);
        for(int i=0;i0&&ans[pos]<=0;--pos) ;
        for(;pos>=0;--pos) printf("%d",ans[pos]);
        puts("");
    }
    return 0;
}


你可能感兴趣的:(ACM,数学)