#108. 多项式乘法

 

题目描述

这是一道模板题。

输入两个多项式,输出这两个多项式的乘积。

输入格式

第一行两个整数 n nn 和 m mm,分别表示两个多项式的次数。

第二行 n+1 n + 1n+1 个整数,分别表示第一个多项式的 0 00 到 n nn 次项前的系数。

第三行 m+1 m + 1m+1 个整数,分别表示第二个多项式的 0 00 到 m mm 次项前的系数。

输出格式

一行 n+m+1 n + m + 1n+m+1 个整数,分别表示乘起来后的多项式的 0 00 到 n+m n + mn+m 次项前的系数。

样例

样例输入

1 2
1 2
1 2 1

样例输出

1 4 5 2

数据范围与提示

0≤n,m≤105 0 \leq n, m \leq 10 ^ 50≤n,m≤10​5​​,保证输入中的系数大于等于 0 00 且小于等于 9 99。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#define maxn 400010
#define PI (acos(-1.0))
using namespace std;
int rd[maxn];
struct node{
double x,y;
node(double a=,double b=):x(a),y(b){}
node operator + (const node &c)
{return node(x+c.x,y+c.y);}
node operator - (const node &c)
{return node(x-c.x,y-c.y);}
node operator * (const node &c)
{return node(x*c.x-y*c.y,x*c.y+y*c.x);}
node operator / (const double &c)
{return node(x/c,y/c);}
}a[maxn],b[maxn];
void fft(node *a,int n,int f){
node wn,w;int i;
for(int i=;i<=n;i++)
if(rd[i]>i)swap(a[i],a[rd[i]]);
for(int k=;k<n;k<<=){
wn=node(cos(PI/k),f*sin(PI/k));
for(int j=;j<n;j+=(k<<)){
for(w=node(,),i=;i<k;i++,w=w*wn){
node x=a[i+j];
node y=a[i+j+k]*w;
a[i+j]=x+y;
a[i+j+k]=x-y;
}
}
}
if(f==-)
for(int i=;i<=n;i++)a[i]=a[i]/n;
}
int main(){
int n,m;
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++)scanf("%lf",&a[i].x);
for(int i=;i<=m;i++)scanf("%lf",&b[i].x);
m=n+m,n=;int l=;
while(n<=m){n<<=,l++;}
for(int i=;i<=n;i++)rd[i]=(rd[i>>]>>)|((i&)<<(l-));
fft(a,n,);fft(b,n,);
for(int i=;i<=n;i++)a[i]=a[i]*b[i];
fft(a,n,-);
for(int i=;i<=m;i++)printf("%d ",(int)(a[i].x+0.5));
return ;
}

loj #108. 多项式乘法的更多相关文章

  1. LibreOJ #108. 多项式乘法

    二次联通门 : LibreOJ #108. 多项式乘法 /* LibreOJ #108. 多项式乘法 FFT板子题 不行啊...跑的还是慢 应该找个机会学一学由乃dalao的fft 或者是毛爷爷的ff ...

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

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

  3. [UOJ#34]多项式乘法

    [UOJ#34]多项式乘法 试题描述 这是一道模板题. 给你两个多项式,请输出乘起来后的多项式. 输入 第一行两个整数 n 和 m,分别表示两个多项式的次数. 第二行 n+1 个整数,分别表示第一个多 ...

  4. [笔记]ACM笔记 - 利用FFT求卷积(求多项式乘法)

    卷积 给定向量:, 向量和: 数量积(内积.点积): 卷积:,其中 例如: 卷积的最典型的应用就是多项式乘法(多项式乘法就是求卷积).以下就用多项式乘法来描述.举例卷积与DFT. 关于多项式 对于多项 ...

  5. FFT模板(多项式乘法)

    FFT模板(多项式乘法) 标签: FFT 扯淡 一晚上都用来捣鼓这个东西了...... 这里贴一位神犇的博客,我认为讲的比较清楚了.(刚好适合我这种复数都没学的) http://blog.csdn.n ...

  6. 【Uoj34】多项式乘法(NTT,FFT)

    [Uoj34]多项式乘法(NTT,FFT) 题面 uoj 题解 首先多项式乘法用\(FFT\)是一个很久很久以前就写过的东西 直接贴一下代码吧.. #include<iostream> # ...

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

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

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

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

  9. FFT/NTT总结+洛谷P3803 【模板】多项式乘法(FFT)(FFT/NTT)

    前言 众所周知,这两个东西都是用来算多项式乘法的. 对于这种常人思维难以理解的东西,就少些理解,多背板子吧! 因此只总结一下思路和代码,什么概念和推式子就靠巨佬们吧 推荐自为风月马前卒巨佬的概念和定理 ...

随机推荐

  1. 遍历js的obj中所有属性得key

    var obj = $("#jstree_default").jstree("get_checked"); for (var a in obj) { alert ...

  2. Day2-Python基础2---列表、元组操作

    一.列表 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 定义列表 names = ["maqing"," peilin" ...

  3. AngularJS:动画

    ylbtech-AngularJS:动画 1.返回顶部 1. AngularJS 动画 AngularJS 提供了动画效果,可以配合 CSS 使用. AngularJS 使用动画需要引入 angula ...

  4. appium_python_android测试环境搭建

    第一步  安装appium •Appium是由.NET 开发的,所以,它会依赖 .NET framework相关组件,所以先安装.net framework 4.5,备注: Appium最低支持.ne ...

  5. linux 权限 homework

    作业一: 1) 新建用户natasha,uid为1000,gid为555,备注信息为“master” useradd natasha -u 1000 -g 555 -c "master&qu ...

  6. Solaris ssh配置主机间信任关系

    假设需要配置从主机com00biiitf001登录主机ols00biiitf001时不需要密码,则采用以下步骤配置: com00biiitf001上产生公用/私有密钥对 $ ssh-keygen -t ...

  7. BA 新web化 问题汇总

    1. 3D堆栈图在winform端无法显示,但在web端可以正常显示,说明与浏览器版本有关,在 IE 中设置文档模式为 IE8 即报错,IE9 却正常显示,可在 <head>节点下添加如下 ...

  8. mysql show status 参数解析

    状态名 作用域 详细解释 Aborted_clients Global 由于客户端没有正确关闭连接导致客户端终止而中断的连接数 Aborted_connects Global 试图连接到MySQL服务 ...

  9. zookeeper 安装配置注意事项

    zoo.cfg 1.server.1/2/3  有几台配置几个 ​2.配置好hosts映射之后可以用node1替代IP地址 3.dataLogDir  下面配置的logs 的目录一定要创建 4.dat ...

  10. vue 跨域访问http

    axios用法: npm install axios --save-dev 2.导入: import axios from 'axios'; 3.使用($(form)需要先按装jQuery) axio ...