FFT模板,原理不难,优质讲解很多,但证明很难看太不懂

这模板题在bzoj竟然是土豪题,服了

  1. #include <cmath>
  2. #include <cstdio>
  3. #include <cstring>
  4. #include <algorithm>
  5. #define dd double
  6. #define ll long long
  7. #define N (1<<21)+10
  8. using namespace std;
  9.  
  10. int n,m,ma;
  11. int r[N];
  12. dd const pi=acos(-);
  13. struct cp{
  14. dd x,y;
  15. cp(dd a,dd b):x(a),y(b){}
  16. cp(){}
  17. cp operator+(const cp &a){return cp(x+a.x,y+a.y);}
  18. cp operator-(const cp &a){return cp(x-a.x,y-a.y);}
  19. cp operator*(const cp &a){return cp(x*a.x-y*a.y,x*a.y+y*a.x);}
  20. }a[N],b[N],c[N];
  21. void FFT(cp s[],int len,int type)
  22. {
  23. for(int i=;i<len;i++)
  24. if(i<r[i]) swap(s[i],s[r[i]]);
  25. for(int k=;k<=len;k<<=)
  26. {
  27. cp wn(cos(*pi*type/k),sin(*pi*type/k));
  28. for(int i=;i<len;i+=k)
  29. {
  30. cp t,w(,);
  31. for(int j=;j<(k>>);j++,w=w*wn)
  32. {
  33. t=w*s[i+j+(k>>)];
  34. s[i+j+(k>>)]=s[i+j]-t;
  35. s[i+j]=s[i+j]+t;
  36. }
  37. }
  38. }
  39. }
  40. void FFT_main(cp A[],cp B[],cp C[],int len)
  41. {
  42. FFT(A,len,);FFT(B,len,);
  43. for(int i=;i<len;i++) C[i]=A[i]*B[i];
  44. FFT(C,len,-);
  45. }
  46.  
  47. int gc()
  48. {
  49. int rett=,fh=;char c=getchar();
  50. while(c<''||c>''){if(c=='-')fh=-;c=getchar();}
  51. while(c>=''&&c<=''){rett=(rett<<)+(rett<<)+c-'';c=getchar();}
  52. return rett*fh;
  53. }
  54.  
  55. int main()
  56. {
  57. n=gc(),m=gc(),ma=,n++,m++;
  58. for(int i=;i<n;i++) a[i].x=1.0*gc();
  59. for(int i=;i<m;i++) b[i].x=1.0*gc();
  60. while((<<ma)<n+m){ma++;}
  61. for(int i=;i<(<<ma);i++)
  62. r[i]=(r[i>>]>>)|((i&)<<(ma-));
  63. FFT_main(a,b,c,<<ma);
  64. for(int i=;i<n+m-;i++) printf("%d ",(int)(c[i].x/(<<ma)+0.1));
  65. return ;
  66. }

模板 FFT 快速傅里叶变换的更多相关文章

  1. 「学习笔记」FFT 快速傅里叶变换

    目录 「学习笔记」FFT 快速傅里叶变换 啥是 FFT 呀?它可以干什么? 必备芝士 点值表示 复数 傅立叶正变换 傅里叶逆变换 FFT 的代码实现 还会有的 NTT 和三模数 NTT... 「学习笔 ...

  2. FFT 快速傅里叶变换 学习笔记

    FFT 快速傅里叶变换 前言 lmc,ikka,attack等众多大佬都没教会的我终于要自己填坑了. 又是机房里最后一个学fft的人 早背过圆周率50位填坑了 用处 多项式乘法 卷积 \(g(x)=a ...

  3. CQOI2018 九连环 打表找规律 fft快速傅里叶变换

    题面: CQOI2018九连环 分析: 个人认为这道题没有什么价值,纯粹是为了考算法而考算法. 对于小数据我们可以直接爆搜打表,打表出来我们可以观察规律. f[1~10]: 1 2 5 10 21 4 ...

  4. 模板 - 数学 - 快速傅里叶变换/快速数论变换(FFT/NTT)

    先看看. 通常模数常见的有998244353,1004535809,469762049,这几个的原根都是3.所求的项数还不能超过2的23次方(因为998244353的分解). 感觉没啥用. #incl ...

  5. FFT —— 快速傅里叶变换

    问题: 已知A[], B[], 求C[],使: 定义C是A,B的卷积,例如多项式乘法等. 朴素做法是按照定义枚举i和j,但这样时间复杂度是O(n2). 能不能使时间复杂度降下来呢? 点值表示法: 我们 ...

  6. [C++] 频谱图中 FFT快速傅里叶变换C++实现

    在项目中,需要画波形频谱图,因此进行查找,不是很懂相关知识,下列代码主要是针对这篇文章. http://blog.csdn.net/xcgspring/article/details/4749075 ...

  7. matlab中fft快速傅里叶变换

    视频来源:https://www.bilibili.com/video/av51932171?t=628. 博文来源:https://ww2.mathworks.cn/help/matlab/ref/ ...

  8. 模板:快速傅里叶变换(FFT)

    参考:http://blog.csdn.net/f_zyj/article/details/76037583 如果公式炸了请去我的csdn博客:http://blog.csdn.net/luyouqi ...

  9. FFT(快速傅里叶变换) 模板

    洛谷 P3803 [模板]多项式乘法(FFT)传送门 存个板子,完全弄懂之后找机会再写个详解. #include<cstdio> #include<cmath> struct ...

随机推荐

  1. 训练1-U

    输入2个正整数A,B,求A与B的最小公倍数. Input 2个数A,B,中间用空格隔开.(1<= A,B <= 10^9) Output 输出A与B的最小公倍数. Sample Input ...

  2. 4.1、Ansible模块

    ansible-doc -l    列出所有模块 ansible-doc 模块名    查看模块的help说明 ansible-doc -s  module_name:获取指定模块的使用信息 ***文 ...

  3. 01.Python基础-5.函数

    1 函数的介绍 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 内置函数 自定义函数 2 函数的定义和调用 2.1 函数的定义和调用 定义 def 函数名([参数]): 代码块 [ ...

  4. ThinkPHP3.1.3分表状态时候的自动验证的代码BUG

    问题描述 ThinkPHP3.1.3 当使用TP的分库分表后 有些地方需要使用Model自动验证create,当验证唯一性unique会出现BUG, 具体描述 因为自动验证检测唯一性会使用隐式的使用f ...

  5. C# List源码分析(二)

    常用操作的复杂度分析 Contains 该方法是一个O(n)的方法,是根据顺序依次遍历整个列表的,观看源码,跟JAVA还是有不少分别的,在上一篇中就有发现,因为C#对Primitive类型是有处理的, ...

  6. [置顶] QQ空间技术架构之深刻揭密

    QQ空间作为腾讯海量互联网服务产品,经过近七年的发展,实现了从十万级到亿级同时在线的飞跃.在这个过程中,QQ空间团队遇到了哪些技术挑战?其站点前后台架构随着业务规模的变化又进行了怎样的演进与变迁?成长 ...

  7. JavaScript之Ajax技术

  8. HTTP中的重定向和请求转发的区别(转)

    时间长有些忘了,转篇文章加深一下印象: 一.调用方式 我们知道,在servlet中调用转发.重定向的语句如下:request.getRequestDispatcher("new.jsp&qu ...

  9. [using_microsoft_infopath_2010]Chapter12 管理监视InfoPath表单服务

    本章概要: 1.在SharePoint中心控制台管理InfoPath设置 2.分析监视浏览器表单开考虑潜在性能问题 3.最小化回发数据

  10. Advanced Fruits HDU杭电1503【LCS的保存】

    Problem Description The company "21st Century Fruits" has specialized in creating new sort ...