传送门:

参考博客 1:大佬  attack

参考博客 2:大佬  胡小兔

在这里再膜拜一下这两位大佬 Orz%%%

#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
#define ll long long
#define re register
#define pb push_back
#define mp make_pair
#define P pair<int,int>
const int N=1e7+;
const double Pi=acos(-1.0);
void read(int &a)
{
a=;
int d=;
char ch;
while(ch=getchar(),ch>''||ch<'')
if(ch=='-')
d=-;
a=ch-'';
while(ch=getchar(),ch>=''&&ch<='')
a=a*+ch-'';
a*=d;
}
void write(int x)
{
if(x<)
putchar(),x=-x;
if(x>)
write(x/);
putchar(x%+'');
}
struct complex
{
double x,y;
complex (double xx=,double yy=){x=xx,y=yy;}
}a[N],b[N];
int r[N],limit=,l=;
complex operator + (complex a,complex b) {return complex(a.x+b.x,a.y+b.y);}
complex operator - (complex a,complex b) {return complex(a.x-b.x,a.y-b.y);}
complex operator * (complex a,complex b) {return complex(a.x*b.x-a.y*b.y,a.x*b.y+a.y*b.x);}
inline void FFT(complex *A,int type)
{
for(re int i=;i<limit;i++)
if(i<r[i])
swap(A[i],A[r[i]]);
for(re int mid=;mid<limit;mid<<=)
{
complex Wn(cos(Pi/mid),type*sin(Pi/mid));///mid只是当前要做的区间的一半
for(int R=mid<<,j=;j<limit;j+=R)///以间隔为R 为分块
{
complex w(,);
for(re int k=;k<mid;k++,w=Wn*w)///枚举左区间,同时搞出右区间
{
complex x=A[j+k],y=A[j+k+mid];
A[j+k]=x+w*y;
A[j+k+mid]=x-w*y;
}
}
}
}
int main()
{
int n,m;
read(n);
read(m);
for(re int i=;i<=n;i++)
{
int x;
read(x);
a[i].x=x;
}
for(re int i=;i<=m;i++)
{
int x;
read(x);
b[i].x=x;
}
while(limit<=n+m)
limit<<=,l++;
for(re int i=;i<limit;i++)
r[i]=(r[i>>]>>)|((i&)<<(l-));
FFT(a,);
FFT(b,);
for(re int i=;i<limit;i++)
a[i]=a[i]*b[i];
FFT(a,-);
for(re int i=;i<=n+m;i++)
printf("%d ",(int)(a[i].x/limit+0.5));
return ;
}

P3803 【模板】多项式乘法(FFT)的更多相关文章

  1. P3803 [模板] 多项式乘法 (FFT)

    Rt 注意len要为2的幂 #include <bits/stdc++.h> using namespace std; const double PI = acos(-1.0); inli ...

  2. 洛谷.3803.[模板]多项式乘法(FFT)

    题目链接:洛谷.LOJ. FFT相关:快速傅里叶变换(FFT)详解.FFT总结.从多项式乘法到快速傅里叶变换. 5.4 又看了一遍,这个也不错. 2019.3.7 叕看了一遍,推荐这个. #inclu ...

  3. 多项式乘法(FFT)学习笔记

    ------------------------------------------本文只探讨多项式乘法(FFT)在信息学中的应用如有错误或不明欢迎指出或提问,在此不胜感激 多项式 1.系数表示法  ...

  4. [uoj#34] [洛谷P3803] 多项式乘法(FFT)

    新技能--FFT. 可在 \(O(nlogn)\) 时间内完成多项式在系数表达与点值表达之间的转换. 其中最关键的一点便为单位复数根,有神奇的折半性质. 多项式乘法(即为卷积)的常见形式: \[ C_ ...

  5. @总结 - 1@ 多项式乘法 —— FFT

    目录 @0 - 参考资料@ @1 - 一些概念@ @2 - 傅里叶正变换@ @3 - 傅里叶逆变换@ @4 - 迭代实现 FFT@ @5 - 参考代码实现@ @6 - 快速数论变换 NTT@ @7 - ...

  6. 【learning】多项式乘法&fft

    [吐槽] 以前一直觉得这个东西十分高端完全不会qwq 但是向lyy.yxq.yww.dtz等dalao们学习之后发现这个东西的代码实现其实极其简洁 于是趁着还没有忘记赶紧来写一篇博 (说起来这篇东西的 ...

  7. UOJ 34 多项式乘法 FFT 模板

    这是一道模板题. 给你两个多项式,请输出乘起来后的多项式. 输入格式 第一行两个整数 nn 和 mm,分别表示两个多项式的次数. 第二行 n+1n+1 个整数,表示第一个多项式的 00 到 nn 次项 ...

  8. [模板] 多项式: 乘法/求逆/分治fft/微积分/ln/exp/幂

    多项式 代码 const int nsz=(int)4e5+50; const ll nmod=998244353,g=3,ginv=332748118ll; //basic math ll qp(l ...

  9. 【模板】多项式乘法(FFT)

    题目描述 给定一个n次多项式F(x),和一个m次多项式G(x). 请求出F(x)和G(x)的卷积. 输入输出格式 输入格式: 第一行2个正整数n,m. 接下来一行n+1个数字,从低到高表示F(x)的系 ...

  10. 【Luogu3808】多项式乘法FFT(FFT)

    题目戳我 一道模板题 自己尝试证明了大部分... 剩下的还是没太证出来... 所以就是一个模板放在这里 以后再来补东西吧.... #include<iostream> #include&l ...

随机推荐

  1. SpringMvc+Hibernate+Mysql保存表情字符(昵称)到数据库报错的问题?

    背景: 一个中小型H5游戏 描述: 游戏通过微信授权登入, 获取到用户昵称并将用户信息保存至Mysql数据库, 当遇到有些用户微信昵称中带有表情(特殊字符)时, 保存至数据库出错! 核心错误: Cau ...

  2. net core体系-web应用程序-4asp.net core2.0 项目实战(任务管理系统)-1项目说明

    https://www.bug2048.com/netcore20180313/ 最近公司的一个小项目尝试使用 .net core作为服务端进行开发,并顺利上线运行了一段时间,整体效果还是比较满意的. ...

  3. 项目sql统计

  4. js 复制(自动)

    <script type="text/javascript"> document.writeln("<input type=\'text\' id=\' ...

  5. dup(dup2/dup3)

    readme man~ NAME dup, dup2, dup3 - duplicate a file descriptor SYNOPSIS #include <unistd.h> in ...

  6. [LeetCode] Most Common Word 最常见的单词

    Given a paragraph and a list of banned words, return the most frequent word that is not in the list ...

  7. Hangover POJ - 1003

    How far can you make a stack of cards overhang a table? If you have one card, you can create a maxim ...

  8. laravel之构造器操作数据库

    使用构造器来查询的优点是可以方式sql注入 1.插入 2.修改数据库 3.删除 4.查询

  9. Havel-Hakimi定理的方法来构图

    给定一组非负数字,(数字为节点的度),判断该组数字能不能构成图. Havel-Hakimi定理: 将序列按照从大到小排序之后,从第二个数开始到第一个数的长度+1为止,依次减1.每操作一次,删掉第一个数 ...

  10. servlet实现简单的登录功能

    1.登录页面 Login.html <%@page contentType="text/html" pageEncoding="UTF-8"%> & ...