BZOJ 2179: FFT快速傅立叶
2179: FFT快速傅立叶
Time Limit: 10 Sec Memory Limit: 259 MB
Submit: 2923 Solved: 1498
[Submit][Status][Discuss]
Description
Input
第二行描述一个位数为n的正整数x。
第三行描述一个位数为n的正整数y。
Output
Sample Input
3
4
Sample Output
数据范围:
n<=60000
HINT
Source
FFT模板
#include <bits/stdc++.h> using namespace std; const int maxn = ;
const double pi = acos(-);
typedef complex<double> Complex; int n, m, len;
int ans[maxn];
int rev[maxn];
char str[maxn]; Complex a[maxn];
Complex b[maxn]; inline void calculateFFT(Complex *c, double f)
{
for (int i = ; i < n; ++i)
if (i < rev[i])swap(c[i], c[rev[i]]); for (int i = ; i < n; i <<= )
{
Complex wn(cos(pi/i), f*sin(pi/i)); for (int j = ; j < n; j += (i << ))
{
Complex wk(, ); for (int k = ; k < i; ++k, wk *= wn)
{
Complex x = c[j + k];
Complex y = c[i + j + k] * wk;
c[j + k] = x + y;
c[i + j + k] = x - y;
}
}
}
} signed main(void)
{
scanf("%d", &n); scanf("%s", str); for (int i = ; i < n; ++i)
a[i] = str[n - i - ] - ''; scanf("%s", str); for (int i = ; i < n; ++i)
b[i] = str[n - i - ] - ''; m = n << ;
for (n = ; n < m; )
++len, n <<= ; for (int i = ; i < n; ++i)
{
rev[i] |= rev[i >> ] >> ;
rev[i] |= (i&) << (len - );
} calculateFFT(a, );
calculateFFT(b, ); for (int i = ; i < n; ++i)
a[i] *= b[i]; calculateFFT(a, -); for (int i = ; i < n; ++i)
a[i] /= n; for (int i= ; i < m; ++i)
ans[i] = int(a[i].real() + 0.5); while (!ans[m - ])--m; for (int i = ; i < m; ++i)
if (ans[i] >= )
{
ans[i + ] += ans[i]/;
ans[i] %= ;
} if (!ans[m])--m; for (int i = m; ~i; --i)
putchar('' + ans[i]);
}
@Author: YouSiki
BZOJ 2179: FFT快速傅立叶的更多相关文章
- bzoj 2179: FFT快速傅立叶 -- FFT
2179: FFT快速傅立叶 Time Limit: 10 Sec Memory Limit: 259 MB Description 给出两个n位10进制整数x和y,你需要计算x*y. Input ...
- BZOJ 2179 FFT快速傅立叶 题解
bzoj 2179 Description 给出两个n位10进制整数x和y,你需要计算x*y. [题目分析] 高精裸题.练手. [代码] 1.手动高精 #include<cstdio> # ...
- bzoj 2179 FFT快速傅立叶 —— FFT
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2179 默写板子,注释的是忘记的地方. 代码如下: #include<iostream& ...
- BZOJ 2179 FFT快速傅立叶 ——FFT
[题目分析] 快速傅里叶变换用于高精度乘法. 其实本质就是循环卷积的计算,也就是多项式的乘法. 两次蝴蝶变换. 二进制取反化递归为迭代. 单位根的巧妙取值,是的复杂度成为了nlogn 范德蒙矩阵计算逆 ...
- 【刷题】BZOJ 2179 FFT快速傅立叶
Description 给出两个n位10进制整数x和y,你需要计算x*y. Input 第一行一个正整数n. 第二行描述一个位数为n的正整数x. 第三行描述一个位数为n的正整数y. Output 输出 ...
- 【BZOJ 2179】 2179: FFT快速傅立叶 (FFT)
2179: FFT快速傅立叶 Time Limit: 10 Sec Memory Limit: 259 MBSubmit: 3308 Solved: 1720 Description 给出两个n位 ...
- 【BZOJ】2179: FFT快速傅立叶(fft)
http://www.lydsy.com/JudgeOnline/problem.php?id=2179 fft裸题.... 为嘛我的那么慢....1000多ms.. #include <cst ...
- 【bzoj2179】FFT快速傅立叶 FFT模板
2016-06-01 09:34:54 很久很久很久以前写的了... 今天又比较了一下效率,貌似手写复数要快很多. 贴一下模板: #include<iostream> #include& ...
- 【BZOJ2179】FFT快速傅立叶
[BZOJ2179]FFT快速傅立叶 Description 给出两个n位10进制整数x和y,你需要计算x*y. Input 第一行一个正整数n. 第二行描述一个位数为n的正整数x. 第三行描述一个位 ...
随机推荐
- Android添加图片到ListView或者 RecyclerView显示
先上图 点击+号就去选择图片 实际上这个添加本身就是一个ListView或者 RecyclerView 只是布局有些特殊 item <?xml version="1.0" e ...
- iOS 学习 - 23 加载本地 txt 文件, NSMutableParagraphStyle 段落格式,缩放动画,字体间距
思路: 1.new 一个 Empty 后缀为 .txt 文件,内容随笔拷贝一段 2.用 NSString 接收本地文件,再用一个标题拼接字符串 3.创建一个 NSMutableParagraphSty ...
- iOS--UIAlertView与UIAlertController和UIAlertAction之间的事儿
iOS 8的新特性之一就是让接口更有适应性.更灵活,因此许多视图控制器的实现方式发生了巨大的变化.全新的UIPresentationController在实现视图控制器间的过渡动画效果和自适应设备 ...
- linux内存使用计算方式
Linux开机后,使用top命令查看,4G物理内存发现已使用的多大3.2G,占用率高达80%以上: Mem: 3889836k total, 3341868k used, 547968k free, ...
- Linux命令学习总结: file命令
命令简介: 该命令用来识别文件类型,也可用来辨别一些文件的编码格式.它是通过查看文件的头部信息来获取文件类型,而不是像Windows通过扩展名来确定文件类型的. 执行权限 :All User 指令所在 ...
- You must use the Role Management Tool to install or configure Microsoft .NET Framework 3.5 SP1
今天在Windows Server 2008 下安装SQL SERVER 2008时,碰到如下错误: You must use the Role Management Tool to install ...
- SQL Server Column Store Indeses
SQL Server Column Store Indeses SQL Server Column Store Indeses 1. 概述 2. 索引存储 2.1 列式索引存储 2.2 数据编码和压缩 ...
- Tomcat开机自启动
需要Tomcat开机自动启动应用: 首先.配置Java环境变量: 然后.新建变量:CATALINA_HOME=你的TOMCAT的根目录 最后.在PATH变量最后加上: ;%CATALINA_HOME% ...
- java常用的文件读写操作
现在算算已经做java开发两年了,回过头想想还真是挺不容易的,java的东西是比较复杂但是如果基础功扎实的话能力的提升就很快,这次特别整理了点有关文件操作的常用代码和大家分享 1.文件的读取(普通方式 ...
- 如何使用 Entity Framework 构造动态查询表达式
一般的程序员做上几年以后, 或多或少的都有些代码的积累, 我也不例外. 作为微软技术程序员, 自从Linq和EF出来之后, 就基本上爱不释手了, 且不说执行效率的问题, 单单就开发效率和代码的可移植性 ...