bzoj2179 FFT快速傅立叶
来源:互联网 发布:程序员眼里只有两种人 编辑:程序博客网 时间:2024/04/30 19:35
题目
先写模板,再理解吧。
FFT高精度乘法模板。
//FFT 高精度乘法模板 #include<bits/stdc++.h>#define N 131075 using namespace std;int n,c[N],i,j;complex<double> a[N],b[N],p[N];const double pi=acos(-1);void FFT(complex<double> *x,int n,int type){ int i,j,k,t; for(i=0,t=0;i<n;i++) { if(i>t)swap(x[i],x[t]); for(int j=n>>1;(t^=j)<j;j>>=1); } for(int k=2;k<=n;k<<=1) { complex<double> wn(cos(type*2*pi/k),sin(type*2*pi/k)); for(int i=0;i<n;i+=k) { complex<double> w(1,0),t; for(int j=0;j<k>>1;w*=wn,j++) { t=w*x[i+j+(k>>1)]; x[i+j+(k>>1)]=x[i+j]-t,x[i+j]+=t; } } }}int main(){ //freopen("in.txt","r",stdin); cin>>n; for(getchar(),i=n-1;i>=0;i--)a[i]=getchar()-'0'; for(getchar(),i=n-1;i>=0;i--)b[i]=getchar()-'0'; for(j=n,i=1;i>>2<j;i<<=1)n=i; FFT(a,n,1),FFT(b,n,1); for(int i=0;i<n;i++)p[i]=a[i]*b[i]; FFT(p,n,-1); int len=0; for(int i=0;i<n;i++)c[i]=p[i].real()/n+0.1; for(int i=0;i<n;i++)if(c[i]) len=i,c[i+1]+=c[i]/10,c[i]%=10; for(int i=len;i>=0;i--)printf("%d",c[i]); return 0;}
实在不行背板吧,反正noip不考(flag
阅读全文
0 0
- bzoj2179: FFT快速傅立叶
- [BZOJ2179]FFT快速傅立叶
- bzoj2179 FFT快速傅立叶
- [BZOJ2179]FFT快速傅立叶
- 【bzoj2179】FFT快速傅立叶
- bzoj2179 FFT快速傅立叶
- bzoj2179 FFT快速傅立叶
- bzoj2179: FFT快速傅立叶
- bzoj2179 FFT快速傅立叶
- [bzoj2179]FFT快速傅立叶
- bzoj2179 FFT快速傅立叶
- BZOJ2179: FFT快速傅立叶
- BZOJ2179 FFT快速傅立叶
- FFT bzoj2179: FFT快速傅立叶
- 【bzoj2179】FFT快速傅立叶 FFT
- BZOJ2179: FFT快速傅立叶 FFT
- 【FFT】BZOJ2179 FFT快速傅立叶
- bzoj2179: FFT快速傅立叶 FFT裸题
- ZigBee CC2530 Z-Stack 23 绑定通信2-实验验证
- POJ-1126——Simply Syntax (暴力扫一遍)
- CASE WHEN 及 SELECT CASE WHEN的用法
- WIndows使用的一些配置
- 网易2018校园招聘第2题
- bzoj2179 FFT快速傅立叶
- VMware Workstation 8.0
- Java中使用Junit进行单元测试入门
- SSH与SSM学习之hibernate23——关联级别加载策略之集合关联加载策略
- MySQL存储引擎
- 2017.9.21作业
- 2182: 不是签到题XD
- HDU 1242 Rescue【BFS+优先队列】
- bzoj2194 快速傅立叶之二