洛谷 P3338 [ZJOI2014]力(bzoj P3527 [ZJOI2014]力)

传送门

很难受,不会输公式,于是手写了一份,比较丑,希望不要介意。fft的套路果然深。。照着网上模板学习了一下。。

洛谷 P3338 [ZJOI2014]力(bzoj P3527 [ZJOI2014]力)_第1张图片

代码:

#include
#include
#include
#include 
using namespace std;
const int Maxn=1000005;
int n,N,L;
int rev[Maxn];
int dig[Maxn];
double p[Maxn];
struct complex
{
	double real,image;
	complex()
	{
		real=image=0.0;
	}
	complex(double a,double b)
	{
		real=a;
		image=b;
	}
}a[Maxn],b[Maxn],c[Maxn],A[Maxn],x,y,ans[Maxn];
complex operator +(complex a,complex b)
{
	return complex(a.real+b.real,a.image+b.image);
}
complex operator -(complex a,complex b)
{
	return complex(a.real-b.real,a.image-b.image);
}
complex operator *(complex a,complex b)
{
	return complex(a.real*b.real-a.image*b.image,a.real*b.image+a.image*b.real);
}
void FFT(complex a[],int flag)
{  
    for(int i=0;i>=1)
			dig[len++]=t&1;  
        for(int j=0;j


你可能感兴趣的:(bzoj,fft)