打了FFT

感觉以后多项式不虚了 滑稽

PS

关于详见没写完....

code

  1. #include<cmath>
  2. #include<cstdio>
  3. #include<cstring>
  4. #include<algorithm>
  5. // pi = 3.14;
  6. inline int read() {
  7. int x = 0,f = 1 ;
  8. char c = getchar();
  9. while(c < '0' || c > '9') { if(c == '-') f = -1; c = getchar() ;}
  10. while(c <= '9' && c >= '0') x = x * 10 + c- '0' ,c = getchar ();
  11. return x *f;
  12. }
  13. const int maxn = 5000007;
  14. const double pi = acos(-1.0);
  15. struct Complex {
  16. double x,y;
  17. Complex (double xx = 0,double yy = 0) { x = xx,y = yy; }
  18. }f[maxn],g[maxn];
  19. Complex operator + (Complex a,Complex b) {return Complex(a.x + b.x,a.y + b.y); }
  20. Complex operator - (Complex a,Complex b) {return Complex(a.x - b.x,a.y - b.y); }
  21. Complex operator * (Complex a,Complex b) {return Complex(a.x * b.x - a.y * b.y,a.x * b.y + a.y * b.x); }
  22. int n,m ;
  23. int l,r[maxn];
  24. int limit = 1;
  25. void FFT (Complex * A,int type) {
  26. for(int i = 0;i < limit;i ++ )
  27. if(i < r[i]) std::swap(A[i],A[r[i]]); //get _迭代序列
  28. for(int mid = 1;mid < limit; mid <<= 1) {
  29. Complex wn (cos(pi / mid) , type * sin(pi / mid));
  30. for(int R = mid << 1 ,j = 0;j < limit ; j += R) {
  31. Complex w(1,0);
  32. for(int k = 0;k < mid;k ++ ,w = w * wn) {
  33. Complex x = A[j + k] , y = w *A[j + mid + k];
  34. A[j + k] = x + y;
  35. A[j + mid + k] = x - y;
  36. }
  37. }
  38. }
  39. }
  40. int main() {
  41. n = read(), m = read();
  42. for(int i = 0;i <= n; ++ i) f[i] = read();
  43. for(int i = 0;i <= m; ++ i) g[i] = read();
  44. while(limit <= n + m) limit <<= 1,l ++;
  45. for(int i = 0;i < limit;i ++)
  46. r[i] = (r[i >> 1] >> 1) | ((i & 1) << (l-1));
  47. FFT(f,1);FFT(g,1);
  48. for(int i = 0;i <= limit;++ i) f[i] = f[i] * g[i];
  49. FFT(f,- 1);
  50. for(int i = 0;i <= n + m;++ i)
  51. printf("%d ",(int) (f[i].x / limit + 0.5));
  52. return 0;
  53. }

FFT&NTT&多项式相关的更多相关文章

  1. FFT/NTT 多项式学习笔记

    FFT(快速傅立叶变换)和NTT(快速数论变换)看上去很高端,真正搞懂了就很simple了辣. 首先给出多项式的一些定义(初中数学内容): 形如Σaixi的式子就是多项式! 多项式中每个单项式叫做多项 ...

  2. [拉格朗日反演][FFT][NTT][多项式大全]详解

    1.多项式的两种表示法 1.系数表示法 我们最常用的多项式表示法就是系数表示法,一个次数界为\(n\)的多项式\(S(x)\)可以用一个向量\(s=(s_0,s_1,s_2,\cdots,s_n-1) ...

  3. [学习笔记&教程] 信号, 集合, 多项式, 以及各种卷积性变换 (FFT,NTT,FWT,FMT)

    目录 信号, 集合, 多项式, 以及卷积性变换 卷积 卷积性变换 傅里叶变换与信号 引入: 信号分析 变换的基础: 复数 傅里叶变换 离散傅里叶变换 FFT 与多项式 \(n\) 次单位复根 消去引理 ...

  4. FFT/NTT复习笔记&多项式&生成函数学习笔记Ⅰ

    众所周知,tzc 在 2019 年(12 月 31 日)就第一次开始接触多项式相关算法,可到 2021 年(1 月 1 日)才开始写这篇 blog. 感觉自己开了个大坑( 多项式 多项式乘法 好吧这个 ...

  5. FFT/NTT复习笔记&多项式&生成函数学习笔记Ⅲ

    第三波,走起~~ FFT/NTT复习笔记&多项式&生成函数学习笔记Ⅰ FFT/NTT复习笔记&多项式&生成函数学习笔记Ⅱ 单位根反演 今天打多校时 1002 被卡科技了 ...

  6. FFT \ NTT总结(多项式的构造方法)

    前言.FFT  NTT 算法 网上有很多,这里不再赘述. 模板见我的代码库: FFT:戳我 NTT:戳我 正经向:FFT题目解题思路 \(FFT\)这个玩意不可能直接裸考的..... 其实一般\(FF ...

  7. 【learning】多项式相关(求逆、开根、除法、取模)

    (首先要%miskcoo,这位dalao写的博客(这里)实在是太强啦qwq大部分多项式相关的知识都是从这位dalao博客里面学的,下面这篇东西是自己对其博客学习后的一些总结和想法,大部分是按照其博客里 ...

  8. $FFT/NTT/FWT$题单&简要题解

    打算写一个多项式总结. 虽然自己菜得太真实了. 好像四级标题太小了,下次写博客的时候再考虑一下. 模板 \(FFT\)模板 #include <iostream> #include < ...

  9. FFT/NTT/MTT学习笔记

    FFT/NTT/MTT Tags:数学 作业部落 评论地址 前言 这是网上的优秀博客 并不建议初学者看我的博客,因为我也不是很了解FFT的具体原理 一.概述 两个多项式相乘,不用\(N^2\),通过\ ...

随机推荐

  1. 安徽师大附中%你赛day3T1 怜香惜玉 解题报告

    怜香惜玉 题意: 已知 \(f(x)=\frac{2 \times \sum_{(i,x)=1}^x i}{φ(x)}\) 先给定数据组数\(t\)和\(k\) 每组数据给出\(n\),求\(\sum ...

  2. 设置edittext的样式

    1.在res->drawable编写 <?xml version="1.0" encoding="utf-8"?> <shape xml ...

  3. 关于javascript中的this 一段小实例深有体会啊

    先声明鄙人正在努力的把脚抬进门来,说的都是比较粗浅的知识,但都是我实践中得出的体会,很深刻.  正在自学中挣扎的DOG. 先看段代码: function highlightRows() { if(!d ...

  4. 2、Distributed Optimization

    一.目录: Distributed dynamic programming (as applied to path-planning problems). Distributed solutions ...

  5. js点亮星星评分并获取参数的js代码

    点亮星星评分后,点击按钮,立即获得分数参数值,方便不想使用ajax传参的朋友 http://demo.jb51.net/js/2014/jsxxdf/demo2.html <!DOCTYPE h ...

  6. c# vs2008报表

    1. 做报表没做几次,第一次做的都忘记了,还好今天做一下就把报表弄成功了.报表中“参数字段”是可以变的,就是说需要自己赋值或者是要计算的.而在苏据库字段里面的是固定的值.不需要计算(注:有的字段查询出 ...

  7. BZOJ 1598 牛跑步

    牛跑步 [问题描述] BESSIE准备用从牛棚跑到池塘的方法来锻炼. 但是因为她懒,她只准备沿着下坡的路跑到池塘, 然后走回牛棚. BESSIE也不想跑得太远,所以她想走最短的路经. 农场上一共有M ...

  8. KVM基本概念

    在kvm技术中,应用到的两个东西:qemu和kvm.其中kvm负责cpu虚拟化和内存虚拟化,但是kvm不能模拟其他设备,qemu是模拟IO设备(网卡,磁盘),kvm加上qemu之后就能实现真正意义上的 ...

  9. measure time program

    #include <time.h> int delay(int time) { int i,j; for(i =0;i<time;i++) for(j=0;j<10000;j+ ...

  10. C# 文件选择对话框

    方法一:系统自带 <asp:FileUpload ID="FileSelect" runat="server" /> 方法二:ShowDialog( ...