2179: FFT快速傅立叶

Time Limit: 10 Sec  Memory Limit: 259 MB

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

HINT

#include<map>
#include<cmath>
#include<queue>
#include<cstdio>
#include<complex>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
#define cp complex<double>
#define ll long long
#define PI acos(-1)
#define N 200010
int n,m,c[N],L=-1,r[N];
cp a[N],b[N];
char s1[N],s2[N];
void FFT(cp *x,int f)
{for(int i=0;i<n;i++) if(i<r[i]) swap(x[i],x[r[i]]);for(int i=1;i<n;i<<=1){cp wn(cos(PI/i),f*sin(PI/i));for(int j=0;j<n;j+=(i<<1)){cp w(1,0),X,Y;for(int k=0;k<i;k++,w*=wn){X=x[j+k];Y=w*x[j+k+i];x[j+k]=X+Y;x[j+k+i]=X-Y;}}}
}
int main()
{scanf("%d%s%s",&n,s1,s2);n--;for(int i=0;i<=n;i++) a[i]=s1[n-i]-'0';for(int i=0;i<=n;i++) b[i]=s2[n-i]-'0';m=n<<1;for(n=1;n<=m;n<<=1) L++;for(int i=0;i<n;i++) r[i]=(r[i>>1]>>1)|((i&1)<<L);FFT(a,1);FFT(b,1);for(int i=0;i<=n;i++) a[i]*=b[i];FFT(a,-1);for(int i=0;i<=m;i++) c[i]=(int)(a[i].real()/n+0.1);for(int i=0;i<=m;i++){if(c[i]>9){c[i+1]+=c[i]/10;c[i]%=10;if(i==m)m++;}}for(int i=m;i>=0;i--) printf("%d",c[i]);return 0;
}

转载于:https://www.cnblogs.com/lkhll/p/6901953.html

bzoj 2179: FFT快速傅立叶 -- FFT相关推荐

  1. bzoj 2179 FFT快速傅立叶 FFT

    题面 题目传送门 解法 题如其名-- 不妨将多项式的\(x^i\)变成\(10^i\),然后就是一个比较简单的FFT了 md读进来的是一个字符串,并且要倒序 最后注意进位问题 时间复杂度:\(O(n\ ...

  2. [BZOJ2179]FFT快速傅立叶

    [BZOJ2179]FFT快速傅立叶 题目大意: 求\(a\times b(1\le a,b\le10^{60000})\). 思路: FFT模板. 源代码: #include<cmath> ...

  3. FFT快速傅立叶变换在示波器中的用法

    大多数示波器上都有个FFT功能,也叫快速傅立叶变换,但很多人不了解这个功能是做什么用的,百度以后又会遇到各种各样的高数公式,看的一头雾水,遂而放弃这块知识. 我们来看百度百科的解释: FFT,即为快速 ...

  4. bzoj 2179 FFT快速傅立叶

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2179 注意进位的时候最好先把所有的都变成 int 再普通进位. #include<io ...

  5. 如何使用计算机实现fft,快速傅立叶变换(FFT)的计算机实现..doc

    快速傅立叶变换(FFT)的计算机实现. 信号与系统课程设计 --FFT的计算机实现 快速傅里叶变换(FFT)的计算机实现 赖智鹏 华中科技大学电气与电子工程学院0809班U200811806 Emai ...

  6. 数字信号处理FFT快速傅立叶变换MATLAB实现——实例

    今天做作业的时候发现要对一个信号进行FFT变换,在网上找了半天也没找到个能看懂的(因为我太菜了),后来自己研究了一下,感觉一知半解的 起因是这道作业题 例题-满足奈奎斯特 我画了两个图,一个是原信号经 ...

  7. FFT快速傅立叶变换

    //最近突然发现博客园支持\(\rm\LaTeX\),非常高兴啊! 话说离省选只有不到五天了还在学新东西确实有点逗-- 切到正题,FFT还是非常神奇的一个东西,能够反直觉地把两个多项式相乘的时间复杂度 ...

  8. 解题报告(二)C、(darkBZOJ 2194) 快速傅立叶之二(FFT、卷积的概念、常用变换)

    繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量题解和代码,题目难度不一定按照题号排序,我会在每道题后面加上题目难度指数(1∼51 \sim 51∼5),以模板题难度 11 ...

  9. BZOJ_2179_FFT快速傅立叶_(FFT)

    描述 http://www.lydsy.com/JudgeOnline/problem.php?id=2179 超大整数乘法 分析 FFT模板题. 把数字看成是多项式,x是10.然后用FFT做多项式乘 ...

  10. BZOJ 2179 [快速傅里叶变换 高精度乘法]

    2179: FFT快速傅立叶 Time Limit: 10 Sec  Memory Limit: 259 MB Submit: 3108  Solved: 1599 [Submit][Status][ ...

最新文章

  1. xmanager破解待验证
  2. ansys结构分析单元与应用_结构动力学中的时域分析(3) —— 基于ANSYS的实现
  3. 网工必备的存储知识详解
  4. 产品经理要懂的「技术那些事」
  5. delphi调用c#写的webservice中文出现乱码的问题
  6. Linux环境下安装部署AWStats日志分析系统实例
  7. 评论:互联网的冬天还有多远?
  8. 湘教云实名服务平台怎样认证_【i通知】小贝喊你来校园一卡通微信支付实名认证!...
  9. xshell7个人免费版官方下载,无需破解,免激活
  10. L2-016 愿天下有情人都是失散多年的兄妹【DFS】
  11. nginxlocation打印自定义日志
  12. 滑动窗口切割图片并重定位标注框
  13. Openssl移植到ARM开发板
  14. 软件测试 学习之路 SQL语言及navicat使用
  15. fgets函数的使用
  16. Jump lattice 跳格子
  17. lazada发货_LAZADA怎么发货?lazada发货流程详解
  18. 微信小程序 用户协议和隐私协议
  19. css简介,基本语法
  20. SaaSBase:Flowportal是什么?

热门文章

  1. GitHub出现大量重复代码:JavaScript最严重
  2. 工作几年只会增删改查怎么了,大神们都是从第一行代码开始的!
  3. shell基础之EOF的用法
  4. 计算机二级-C语言-对标志位的巧妙使用。对二维数组数据进行处理。对文件进行数据输入。...
  5. Python urllib爬取百度首页
  6. day25 crm 权限管理 通用的增删改查框架
  7. JS1 js获取dom元素方法
  8. 提高JQ效率的一些建议
  9. SQLSERVER2000 存储过程与ORACLE存储过程对比
  10. Visual Studio Debug Practice