bzoj 2179: FFT快速傅立叶 -- FFT
2179: FFT快速傅立叶
Time Limit: 10 Sec Memory Limit: 259 MB
Description
Input
Output
Sample Input
3
4
Sample Output
数据范围:
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=-,r[N];
cp a[N],b[N];
char s1[N],s2[N];
void FFT(cp *x,int f)
{
for(int i=;i<n;i++) if(i<r[i]) swap(x[i],x[r[i]]);
for(int i=;i<n;i<<=)
{
cp wn(cos(PI/i),f*sin(PI/i));
for(int j=;j<n;j+=(i<<))
{
cp w(,),X,Y;
for(int k=;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=;i<=n;i++) a[i]=s1[n-i]-'';
for(int i=;i<=n;i++) b[i]=s2[n-i]-'';
m=n<<;for(n=;n<=m;n<<=) L++;
for(int i=;i<n;i++) r[i]=(r[i>>]>>)|((i&)<<L);
FFT(a,);FFT(b,);
for(int i=;i<=n;i++) a[i]*=b[i];
FFT(a,-);
for(int i=;i<=m;i++) c[i]=(int)(a[i].real()/n+0.1);
for(int i=;i<=m;i++)
{
if(c[i]>)
{
c[i+]+=c[i]/;
c[i]%=;if(i==m)m++;
}
}
for(int i=m;i>=;i--) printf("%d",c[i]);
return ;
}
bzoj 2179: FFT快速傅立叶 -- FFT的更多相关文章
- 【BZOJ 2179】 2179: FFT快速傅立叶 (FFT)
2179: FFT快速傅立叶 Time Limit: 10 Sec Memory Limit: 259 MBSubmit: 3308 Solved: 1720 Description 给出两个n位 ...
- 【bzoj2179】FFT快速傅立叶 FFT模板
2016-06-01 09:34:54 很久很久很久以前写的了... 今天又比较了一下效率,貌似手写复数要快很多. 贴一下模板: #include<iostream> #include& ...
- bzoj 2179 FFT快速傅立叶 —— FFT
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2179 默写板子,注释的是忘记的地方. 代码如下: #include<iostream& ...
- BZOJ 2179 FFT快速傅立叶 ——FFT
[题目分析] 快速傅里叶变换用于高精度乘法. 其实本质就是循环卷积的计算,也就是多项式的乘法. 两次蝴蝶变换. 二进制取反化递归为迭代. 单位根的巧妙取值,是的复杂度成为了nlogn 范德蒙矩阵计算逆 ...
- BZOJ2179:FFT快速傅立叶(FFT)
Description 给出两个n位10进制整数x和y,你需要计算x*y. Input 第一行一个正整数n. 第二行描述一个位数为n的正整数x. 第三行描述一个位数为n的正整数y. Output 输出 ...
- 【bzoj2179】FFT快速傅立叶 FFT
题目描述 给出两个n位10进制整数x和y,你需要计算x*y. 输入 第一行一个正整数n. 第二行描述一个位数为n的正整数x. 第三行描述一个位数为n的正整数y. 输出 输出一行,即x*y的结果. 样例 ...
- BZOJ2179: FFT快速傅立叶 FFT实现高精度乘法
Code: #include <cstdio> #include <algorithm> #include <cmath> #include <cstring ...
- BZOJ 2179: FFT快速傅立叶
2179: FFT快速傅立叶 Time Limit: 10 Sec Memory Limit: 259 MBSubmit: 2923 Solved: 1498[Submit][Status][Di ...
- 【BZOJ2179】FFT快速傅立叶
[BZOJ2179]FFT快速傅立叶 Description 给出两个n位10进制整数x和y,你需要计算x*y. Input 第一行一个正整数n. 第二行描述一个位数为n的正整数x. 第三行描述一个位 ...
随机推荐
- PHP非常好用的分页类
分页类: <?php /* * ********************************************* * @类名: page * @参数: $myde_total - 总记 ...
- 在Nginx服务器上屏蔽IP
采集和防止采集是一个经久不息的话题,一方面都想搞别人的东西,另一方面不想自己的东西被别人搞走. 本文介绍如何利用nginx屏蔽ip来实现防止采集,当然也可以通过iptable来实现. 1.查找要屏蔽的 ...
- 自己实现的SVM源码
首先是DATA类 import java.awt.print.Printable; import java.io.File; import java.io.FileNotFoundException; ...
- [Ext JS 4]后台自动产生图档
前言 [Ext JS 4] 实战之将chart导出为png, jpg 格式的文件 承接上一篇, 我们可以做到在Browser端打开一个Chart,并导出为png或是jpg 等格式的图档. 但实际的需求 ...
- BestCoder #88(1001 1002)
Find Q Accepts: 392 Submissions: 780 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/131 ...
- 常用 Java Profiling 工具的分析与比较
转自:http://www.ibm.com/developerworks/cn/java/j-lo-profiling/index.html 在 Java 程序的开发过程中,不可避免地会遇到内存使用. ...
- TeX Live & TeXstudio 安装手记
数据库课上又看到了那位用 beamer 做 slides 的师兄,想到自己一拖再拖的LaTeX入门,决定赶快动手装个环境再说~在经过一番搜索和研究之后决定先在 windows 底下试用,选择 TeX ...
- css弹性盒子
body元素设置: <body> <div id="wai"> <div class="zi">1</div> ...
- Hadoop案例(八)辅助排序和二次排序案例(GroupingComparator)
辅助排序和二次排序案例(GroupingComparator) 1.需求 有如下订单数据 订单id 商品id 成交金额 0000001 Pdt_01 222.8 0000001 Pdt_05 25.8 ...
- Error:Unable to make the module:***, related gradle configuration was not found. Please, re-import the Gradle project and try again.
打开idea的 View -> Tool Windows -> Gradle.然后点击 Refresh