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. 第三行描述一个位 ...
随机推荐
- SwipeRefreshLayout + RecyclerView 实现 上拉刷新 和 下拉刷新
下拉刷新和上拉刷新都用SwipeRefreshLayout 自带的进度条 布局 <?xml version="1.0" encoding="utf-8"? ...
- iOS开发 解决UITapGestureRecognizer手势与UITableView的点击事件的冲突
该篇文章摘自我的新浪博客,原文地址为: http://blog.sina.com.cn/s/blog_dcc636350102wavx.html UITableView 拥有属于自己的点击事件,在将一 ...
- android:使用Messenger进行进程间通信(二)
//继续完善音乐播放器demo 相关文章: android:使用Messenger进行进程间通信(一):http://www.cnblogs.com/happyhacking/p/5318418.ht ...
- ListView和Adapter的配合使用以及Adapter的重写
ListView和Adapter的使用 首先介绍一下ListView是Android开发过程中较为常见的组件之一,它将数据以列表的形式展现出来.一般而言,一个ListView由以下三个元素组成: ...
- Python聊天室
小编心语:锵锵锵!各位看官注意了啊,走过路过表错过!上篇博文主要介绍了基于基于Server-Sent Event的简单在线聊天室,相信不管各位是大牛.小牛还是跟小编一样的小白,可能觉得看得不够过瘾,区 ...
- ORA-00824: cannot set sga_target due to existing internal settings, see alert log for more information
这篇文章是上篇文章”Expdp 导数错误 ORA-00832”的延续,前几天工作比较忙.累,直到今天才整理发出来.这个数据库实例的参数设置比较诡异其实是有原因的,由于这台数据库服务器系统是32位,数据 ...
- JQuery.Ajax之错误调试帮助信息
下面是Jquery中AJAX参数详细列表: 参数名 类型 描述 url String (默认: 当前页地址) 发送请求的地址. type String (默认: "GET") 请求 ...
- MongoDB学习笔记~客户端命令行的使用
回到目录 当我们从MongoDB网站下载安装包之后,它会伴随有一系列的工具,服务器程序mongod是我们耳熟能详的了,客户端mongo和性能检测mongostat我们可能就没有用过了,今天主要是介绍一 ...
- 遇到shell重定向的一个奇怪问题:'消失'的标准输入!
需求: 把找到的文件逐行输出,然后用rm在许可的情况下删除 前置准备: $ls rm.sh test1 test2 test3 test4 test5 test6 $cat rm.sh #! / ...
- jackson官方快速入门文档
官方地址: http://jackson.codehaus.org/ http://wiki.fasterxml.com/JacksonInFiveMinutes http://wiki.faster ...