博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BZOJ2179:FFT快速傅立叶(FFT)
阅读量:6270 次
发布时间:2019-06-22

本文共 1726 字,大约阅读时间需要 5 分钟。

Description

给出两个n位10进制整数x和y,你需要计算x*y。

Input

第一行一个正整数n。 第二行描述一个位数为n的正整数x。 第三行描述一个位数为n的正整数y。

Output

输出一行,即x*y的结果。

Sample Input

1
3
4

Sample Output

12

数据范围:
n<=60000

Solution

FFT模板题,做的时候注意处理一下进位和前导零就好

Code

1 #include
2 #include
3 #include
4 #include
5 #define N (240000+100) 6 using namespace std; 7 double pi=acos(-1.0); 8 struct complex 9 {10 double x,y;11 complex (double xx=0,double yy=0)12 {13 x=xx; y=yy;14 }15 }a[N],b[N];16 int n=-1,m=-1,t,fn,l,r[N];17 char ch;18 19 complex operator + (complex a,complex b){
return complex(a.x+b.x,a.y+b.y);}20 complex operator - (complex a,complex b){
return complex(a.x-b.x,a.y-b.y);}21 complex operator * (complex a,complex b){
return complex(a.x*b.x-a.y*b.y,a.x*b.y+a.y*b.x);}22 complex operator / (complex a,double b){
return complex(a.x/b,a.y/b);}23 24 void FFT(int n,complex *a,int opt)25 {26 for (int i=0; i
'9') ch=getchar();52 if (n==-1 && ch=='0') continue;53 a[++n].x=ch-'0';54 }55 for (int i=0; i<=t; ++i)56 {57 ch=getchar();58 while (ch<'0' || ch>'9') ch=getchar();59 if (m==-1 && ch=='0') continue;60 b[++m].x=ch-'0';61 }62 if (m==-1) m=0;63 if (n==-1) n=0;64 fn=1;65 while (fn<=n+m) fn<<=1, l++;66 for (int i=0;i
>1]>>1) | ((i&1)<<(l-1));68 69 FFT(fn,a,1); FFT(fn,b,1);70 for (int i=0;i<=fn;++i)71 a[i]=a[i]*b[i];72 FFT(fn,a,-1);73 for (int i=n+m;i>=1;--i)74 {75 a[i-1].x+=(int)(a[i].x+0.5)/10;76 a[i].x=(int)(a[i].x+0.5)%10;77 }78 int p=0;79 while ((int)(a[p].x+0.5)==0 && p

转载于:https://www.cnblogs.com/refun/p/8821395.html

你可能感兴趣的文章
Everything 本地磁盘文件搜索工具下载!
查看>>
Python dict(字典) 详细总结
查看>>
RPF(Reverse Path Forwarding 反向路径转发)技术
查看>>
2016年收到的第一件礼物,被评上微软全球最有价值专家MVP(一)
查看>>
2016中国VR开发者论坛第一期
查看>>
Hyper-V 2016 系列教程5 Hyper-V 服务器基本属性
查看>>
北京、天津工厂自动监测数据爬取
查看>>
第一个python程序简单加法计算器
查看>>
在CentOS下安装Tomcat8
查看>>
Weblogic classloader分析
查看>>
做技术做软件-----如何才能拿到上万的月薪
查看>>
linux 查看当前路径命令:pwd
查看>>
At.js – 用于 Web 应用程序的自动完成库
查看>>
[Android Pro] Android权限设置android.permission完整列表
查看>>
如何对抗硬件断点--- 调试寄存器
查看>>
mybatis学习
查看>>
从不同层面看cocos2d-x
查看>>
Struts2技术详解
查看>>
MFC应用程序向导生成的文件
查看>>
Oracle体系结构之oracle密码文件管理
查看>>