快速傅里叶变换模板记录

例题记得应该是 hdu的 1402,傅里叶变换是一个模板。怎么写是大致固定的,但是如何使用就有考究了。具体傅里叶的讲解我存上一片博客,写的相当不错。FFT详解---在此声明地址(https://blog.csdn.net/GGN_2015/article/details/68922404)。非常佩服这样的同学,不仅知识学的多,而且还可以写的文章清晰明了,讲解清楚

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

using namespace std;
#define lson 2*i
#define rson 2*i+1
#define LS l,mid,lson
#define RS mid+1,r,rson
#define UP(i,x,y) for(i=x;i<=y;i++)
#define DOWN(i,x,y) for(i=x;i>=y;i--)
#define MEM(a,x) memset(a,x,sizeof(a))
#define gcd(a,b) __gcd(a,b)
#define LL long long
#define N 1000005
#define MOD 1000000007
#define INF 0x3f3f3f3f
#define EXP 1e-8
#define lowbit(x) (x&-x)
typedef complex CD;		//复数类的定义
const int maxl = 2094153;		//nlogn的最大长度
const double PI = acos(-1.0);	//圆周率
CD a[maxl],b[maxl];				//用于存储变换的中间结果
int rev[maxl];					//二进制翻转结果
int ans[maxl];
int T;
char s1[maxl],s2[maxl];
int n,m;

void getRev(int bit) {			//二进制翻转函数
	for (int i = 0; i < (1<>1]>>1)|((i&1)<<(bit-1));
}								//能保证(x>>1)'9');
    do{x=x*10+ch-'0';ch=getchar();}while(ch>='0'&& ch<='9');
    return f*x;
}

int main(int argc, char const *argv[]) {
	scanf("%d%d", &n,&m);
	for (int i = 0; i <= n; i++)
		a[i] = read();
	for (int i = 0; i <= m; i++)
		b[i] = read();
	int bit = 1,s=2;
	for (bit=1;(1<

 

你可能感兴趣的:(模板,数学学习)