hdu4609 傅里叶变换

只想说弱爆了,学完FFT还是不知道思路,只好到网上看解题思路,标程和网上统计方法不同,不过都是求补集。


ACcode:

#include
#include
#include
#include
using namespace std;
typedef long long LL;

const int NS=1<<18;
const double pi=acos(-1.0);

int n,N,a[NS];
LL num[NS];

struct Complex{
    double re,im;
    Complex():re(0.),im(0.){}
    Complex(double x,double y):re(x),im(y){}
    Complex operator + (const Complex tmp) const {
        return Complex(re+tmp.re,im+tmp.im);
    }
    Complex operator - (const Complex tmp) const {
        return Complex(re-tmp.re,im-tmp.im);
    }
    Complex operator * (const Complex tmp) const {
        return Complex(re*tmp.re-im*tmp.im,re*tmp.im+im*tmp.re);
    }
    double real(){ return re; }
}P[NS],_P[NS];

int reve(int x,int len)
{
    int y=0;
    for (int i=0;i>=1,i++)
    y|=(x&1)?1<<(len-1-i):0;
    return y;
}

void build(int n,int m,int pos,int &cnt)
{
    if (m==n) {
        _P[cnt++]=P[pos];
    } else {
        build(n,m<<1,pos,cnt);
        build(n,m<<1,pos+m,cnt);
    }
}

inline void FFT(int len,int oper)
{
//    int t=0;
//    for (;(1<>=1;

    LL ans,tot;
    ans=tot=(LL)n*(n-1)*(n-2)/6;
    ans=0;

    for (int i=1;i=(x<<2);N>>=1);
        sort(a,a+n),Mul();
    }
    return 0;
}


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