LibreOJ #108. 多项式乘法
二次联通门 : LibreOJ #108. 多项式乘法
/*
LibreOJ #108. 多项式乘法 FFT板子题
不行啊。。。跑的还是慢 应该找个机会学一学由乃dalao的fft
或者是毛爷爷的fft,跑的真是快啊。。。
*/
#include <cstdio>
#include <iostream>
#include <cmath> const int BUF = ;
char Buf[BUF], *buf = Buf; inline void read (int &now)
{
for (now = ; !isdigit (*buf); ++ buf);
for (; isdigit (*buf); now = now * + *buf - '', ++ buf);
}
using std :: swap;
#define Max 3000000
typedef double flo;
struct Vec
{
flo r, i; Vec () {}
Vec (flo x, flo y) : r (x), i (y) {}
Vec operator * (const Vec &b) const
{ return Vec (r * b.r - i * b.i, r * b.i + i * b.r); }
Vec operator * (const flo &k) const
{ return Vec (r * k, i * k); }
Vec operator + (const Vec &b) const
{ return Vec (r + b.r, i + b.i); }
Vec operator - (const Vec &b) const
{ return Vec (r - b.r, i - b.i); }
Vec& operator /= (const flo &k)
{ return r /= k, i /= k, *this; }
}; Vec a[Max], b[Max];
int N, M, Maxn, rader[Max];
const flo PI = acos (-); void FFT (Vec *a, int N, int f = )
{
register int i, j, k;
for (i = ; i < N; ++ i)
if (rader[i] > i) swap (a[i], a[rader[i]]);
for (k = ; k < N; k <<= )
{
Vec wn (cos (PI / k), f * sin (PI / k));
for (j = ; j < N; j += k << )
{
Vec w (, ), t;
for (i = j; i < j + k; ++ i, w = w * wn)
{
t = w * a[i + k];
a[i + k] = a[i] - t;
a[i] = a[i] + t;
}
}
}
if (f == -)
for (i = ; i < N; ++ i) a[i] /= N;
} int Main ()
{
fread (buf, , BUF, stdin);
read (N), read (M); register int i; int x;
++ N, ++ M, Maxn = << int (ceil (log2 (N + M)));
for (i = ; i < N; ++ i) read (x), a[i].r = x;
for (i = ; i < M; ++ i) read (x), b[i].r = x; for (i = ; i < Maxn; ++ i)
rader[i] = rader[i >> ] >> | (i & ) * (Maxn >> );
FFT (a, Maxn), FFT (b, Maxn);
for (i = ; i < Maxn; ++ i)
a[i] = a[i] * b[i];
N = N + M - ;
for (FFT (a, Maxn, -), i = ; i <= N; ++ i)
printf ("%d ", int (round (a[i].r)));
return ;
}
int ZlycerQan = Main ();
int main (int argc, char *argv[]) {;}
LibreOJ #108. 多项式乘法的更多相关文章
- loj #108. 多项式乘法
#108. 多项式乘法 题目描述 这是一道模板题. 输入两个多项式,输出这两个多项式的乘积. 输入格式 第一行两个整数 n nn 和 m mm,分别表示两个多项式的次数. 第二行 n+1 n + ...
- [UOJ#34]多项式乘法
[UOJ#34]多项式乘法 试题描述 这是一道模板题. 给你两个多项式,请输出乘起来后的多项式. 输入 第一行两个整数 n 和 m,分别表示两个多项式的次数. 第二行 n+1 个整数,分别表示第一个多 ...
- [笔记]ACM笔记 - 利用FFT求卷积(求多项式乘法)
卷积 给定向量:, 向量和: 数量积(内积.点积): 卷积:,其中 例如: 卷积的最典型的应用就是多项式乘法(多项式乘法就是求卷积).以下就用多项式乘法来描述.举例卷积与DFT. 关于多项式 对于多项 ...
- FFT模板(多项式乘法)
FFT模板(多项式乘法) 标签: FFT 扯淡 一晚上都用来捣鼓这个东西了...... 这里贴一位神犇的博客,我认为讲的比较清楚了.(刚好适合我这种复数都没学的) http://blog.csdn.n ...
- 【Uoj34】多项式乘法(NTT,FFT)
[Uoj34]多项式乘法(NTT,FFT) 题面 uoj 题解 首先多项式乘法用\(FFT\)是一个很久很久以前就写过的东西 直接贴一下代码吧.. #include<iostream> # ...
- 【learning】多项式乘法&fft
[吐槽] 以前一直觉得这个东西十分高端完全不会qwq 但是向lyy.yxq.yww.dtz等dalao们学习之后发现这个东西的代码实现其实极其简洁 于是趁着还没有忘记赶紧来写一篇博 (说起来这篇东西的 ...
- 多项式乘法(FFT)学习笔记
------------------------------------------本文只探讨多项式乘法(FFT)在信息学中的应用如有错误或不明欢迎指出或提问,在此不胜感激 多项式 1.系数表示法 ...
- FFT/NTT总结+洛谷P3803 【模板】多项式乘法(FFT)(FFT/NTT)
前言 众所周知,这两个东西都是用来算多项式乘法的. 对于这种常人思维难以理解的东西,就少些理解,多背板子吧! 因此只总结一下思路和代码,什么概念和推式子就靠巨佬们吧 推荐自为风月马前卒巨佬的概念和定理 ...
- 求幂运算、多项式乘法及Horner法则的应用
一,两种不同的求幂运算 求解x^n(x 的 n 次方) ①使用递归,代码如下: private static long pow(int x, int n){ if(n == 0) return 1; ...
随机推荐
- Navicat premium工具转储数据表的结构时,datatime字段报错
Navicat premium工具导出数据库: Navicat premium工具导入数据库: 运行SQL文件,遇到的错误,红色下划线提示,发现:(SQL文件的时间有问题) 不是insert语句有问题 ...
- GC偏好
GC偏好 测序中的GC偏好指的是基因组上GC含量在50%左右的区域更容易被测到,产生的reads更多,这些区域的覆盖度更高, 在高GC或者低GC区域,不容易被测到,产生较少的reads,这些区域的覆盖 ...
- Java调用WebService方法总结(7)--CXF调用WebService
CXF = Celtix + XFire,继承了Celtix和XFire两大开源项目的精华,是一个开源的,全功能的,容易使用的WebService框架.文中所使用到的软件版本:Java 1.8.0_1 ...
- springboot中常用的依赖
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mave ...
- 修改redhat7默认显示语言从中文为英文
[delmore@localhost Desktop]$ su //切换到最高权限 Password: ...
- Typescript项目注意点和基本类型介绍
从typescript源文件到执行的过程 执行者 步骤 说明 TSC 1. TypeScript Source -> TypeScript AST TSC将ts文件转为TS AST(abstra ...
- IDEA中导入Maven模块
IDEA中导入Maven模块方式有二种: 1)批量添加,不可添加文件夹 2)单个添加,可添加任意文件
- SELinux 权限设置
SELinux 权限设置 一.SELinux简介 SELinux全称是Security Enhanced Linux,由美国国家安全部(National Security Agency)领导开发的GP ...
- MongoDB的关闭
关闭 1,非后台运行时,关闭对话,或者ctrl+c 2,登录数据库执行:db.shutdownServer(); 3,带数据目录,关闭服务器,安全 mongod --shutdown --dbpa ...
- 【转】解决maven无法加载本地lib/下的jar包问题(程序包XXX不存在)
原文链接:https://www.cnblogs.com/adeng/p/7096484.html 这次一个项目用到maven编译,我在本地开发的时候jar包都是放在WEB-INF/lib目录下,通过 ...