2194: 快速傅立叶之二 FFT
来源:互联网 发布:流畅的python 编辑:程序博客网 时间:2024/05/17 08:25
继续模板
#include<iostream>#include<cstdio>#include<cmath>#include<cstring>using namespace std;const int N=400005;const double PI=acos(-1);int n,rev[N];struct C{ double real,i; C(double a=0,double b=0) {real=a; i=b;} C operator+(C x) {return C(real+x.real,i+x.i);} C operator-(C x) {return C(real-x.real,i-x.i);} C operator*(C x) {return C(real*x.real-i*x.i,real*x.i+x.real*i);}}a[N],b[N];inline void FFT(C x[],int T){ for (int i=0;i<n;i++) if (rev[i]<i) swap(x[i],x[rev[i]]); for (int i=2;i<=n;i<<=1) { C wn(cos(2*PI/i),T*sin(2*PI/i)); for (int j=0;j<n;j+=i) { C t,tmp,w(1,0); for (int k=0;k<(i>>1);k++) { tmp=x[j+k]; t=w*x[j+k+(i>>1)]; x[j+k]=tmp+t; x[j+k+(i>>1)]=tmp-t; w=w*wn; } } }}int main(){ scanf("%d",&n); for (int i=0;i<n;i++) scanf("%lf%lf",&a[i].real,&b[n-i-1].real); int tmp=n,m=n<<1|1; n=1; while (n<=m) n<<=1; for (int i=0;i<n;i++) rev[i]=(rev[i>>1]>>1)|((i&1)?n>>1:0); 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<tmp;i++) printf("%d\n",(int)(a[i+tmp-1].real/n+0.5)); return 0;}
0 0
- BZOJ 2194(快速傅立叶之二-FFT)
- 【BZOJ 2194】 快速傅立叶之二|FFT
- 2194: 快速傅立叶之二 FFT
- BZOJ 2194 快速傅立叶之二 FFT
- bzoj 2194: 快速傅立叶之二 fft
- [BZOJ 2194] 快速傅立叶之二 · FFT
- bzoj 2194: 快速傅立叶之二 (FFT)
- 【bzoj 2194】快速傅立叶之二(FFT)
- 【bzoj2194】快速傅立叶之二 FFT
- BZOJ2194: 快速傅立叶之二 FFT
- [BZOJ2194]快速傅立叶之二(FFT)
- 【FFT】BZOJ2194 快速傅立叶之二
- 快速傅里叶变换 FFT 【bzoj2194】 快速傅立叶之二
- 2194: 快速傅立叶之二
- 2194: 快速傅立叶之二|快速傅里叶变换
- 【BZOJ 2194】 快速傅立叶之二
- bzoj 2194: 快速傅立叶之二
- bzoj 2194快速傅立叶之二
- Unity之使用csv文件
- 2795: [Poi2012]A Horrible Poem hash
- 【1-3】pythondb增删改查
- 2179: FFT快速傅立叶 FFT
- 推荐!国外程序员整理的机器学习资源大全
- 2194: 快速傅立叶之二 FFT
- 3527: [Zjoi2014]力 FFT
- git分支原理命令图文解析
- 3720: Gty的妹子树 块状树
- 3809: Gty的二逼妹子序列 莫队算法+分块
- Windows不重装系统,使用分区助手分区
- oc数组的四种遍历方法
- BroadcastReceiver最全实例——静态、动态、系统(监听短信、网络连接状态、SD卡、应用安装……)
- SQL中Group By的使用