#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm> #define cal(...)(Vec){__VA_ARGS__}
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);
}
#define Max 150000 const double PI = acos (-.);
struct Vec
{
double x, y;
}; inline Vec operator + (Vec A, Vec B)
{
return cal (A.x + B.x, A.y + B.y);
}
inline Vec operator - (Vec A, Vec B)
{
return cal (A.x - B.x, A.y - B.y);
}
inline Vec operator * (Vec A, Vec B)
{
return cal (A.x * B.x - A.y * B.y, A.x * B.y + A.y * B.x);
}
inline Vec conj (Vec now)
{
return cal (now.x, -now.y);
} Vec *Get_w (int N)
{
static Vec w[Max / ];
w[].x = ;
w[] = cal (cos( * PI / N), sin ( * PI / N));
for (int i = ; i < N / ; ++ i)
w[i] = w[i - ] * w[];
return w;
} void FFT (Vec *a, int N)
{
register int i, j, k;
for (i = , j = ; i < N; ++ i)
{
if (i < j)
std :: swap (a[i], a[j]);
for (k = N >> ; ; k >>= )
if ((j ^= k) >= k)
break;
}
for (i = ; i < N; i <<= )
{
Vec *w = Get_w (i << );
for (j = ; j < N; j += i << )
{
Vec *b = a + j, *c = b + i;
for (k = ; k < i; ++ k)
{
Vec v = w[k] * c[k];
c[k] = b[k] - v;
b[k] = b[k] + v;
}
}
}
} void Mul (int *s, int *t, int N)
{
static Vec a[Max], b[Max], c[Max];
register int i, j;
for (i = ; i < N; ++ i)
{
a[i] = cal (s[i << ], s[i << | ]);
b[i] = cal (s[i << ], t[i << | ]);
}
FFT (a, N), FFT (b, N);
Vec *w = Get_w (N);
for (i = ; i < N; ++ i)
{
j = N - i & N - ;
c[j] = (conj (a[j] * b[j]) * cal() - (conj (a[j]) - a[i]) * (conj (b[j]) - b[i]) * ((i < N / ? w[i] : w[i - N / ] * cal(-)) + cal())) * cal(,.);
}
FFT (c, N);
for (i = ; i < N; ++ i)
{
s[i << ] = c[i].y / N + .;
s[i << | ] = c[i].x / N + .;
}
} int Main ()
{
freopen ("yukari.wife", "r", stdin);
fread (buf, , BUF, stdin); static int a[Max << ], b[Max << ];
int N, M;
read (N);
read (M); register int i;
for (i = ; i <= N; ++ i)
read (a[i]);
for (i = ; i <= M; ++ i)
read (b[i]);
int l = << std :: __lg (N + M + );
Mul (a, b, l >> );
for (i = , N += M; i <= N; ++ i)
printf ("%d ", a[i]);
return ;
}
int ZlycerQan = Main ();
int main (int argc, char *argv[]) {;}

炸掉的fft,改天再调的更多相关文章

  1. CAD在网页绘一个直线,得到直线id,再调该得到直线对象,然写扩展数据

    IMxDrawDatabase::ObjectIdToObject 实体id返回实体对象. 参数 说明 [in] LONGLONG lId 实体id JS代码,中绘一个直线,得到直线id,再调该得到直 ...

  2. P3376 【模板】网络最大流(70)

    题目描述 如题,给出一个网络图,以及其源点和汇点,求出其网络最大流. 输入输出格式 输入格式: 第一行包含四个正整数N.M.S.T,分别表示点的个数.有向边的个数.源点序号.汇点序号. 接下来M行每行 ...

  3. 再探快速傅里叶变换(FFT)学习笔记(其三)(循环卷积的Bluestein算法+分治FFT+FFT的优化+任意模数NTT)

    再探快速傅里叶变换(FFT)学习笔记(其三)(循环卷积的Bluestein算法+分治FFT+FFT的优化+任意模数NTT) 目录 再探快速傅里叶变换(FFT)学习笔记(其三)(循环卷积的Blueste ...

  4. 转自 z55250825 的几篇关于FFT的博文(一)

        关于FFT,咱们都会迫不及待地 @  .....(大雾)(貌似被玩坏了...)    .....0.0学习FFT前先orz FFT君.         首先先是更详细的链接(手写版题解点赞0v ...

  5. 微信小程序-用户拒绝授权使用 wx.openSetting({}) 重新调起授权用户信息

    场景模拟:用户进入微信小程序-程序调出授权 选择拒绝之后,需要用到用户授权才能正常使用的页面,就无法正常使用了. 解决方法:在用户选择拒绝之后,弹窗提示用户 拒绝授权之后无法使用,让用户重新授权(微信 ...

  6. fft ocean注解

    针对这两篇教程: http://www.keithlantz.net/2011/10/ocean-simulation-part-one-using-the-discrete-fourier-tran ...

  7. MySql(十):MySQL性能调优——MySQL Server性能优化

    本章主要通过针对MySQL Server( mysqld)相关实现机制的分析,得到一些相应的优化建议.主要涉及MySQL的安装以及相关参数设置的优化,但不包括mysqld之外的比如存储引擎相关的参数优 ...

  8. Tomcat性能调优及JVM内存工作原理

    Java性能优化方向:代码运算性能.内存回收.应用配置. 注:影响Java程序主要原因是垃圾回收,下面会重点介绍这方面 代码层优化:避免过多循环嵌套.调用和复杂逻辑.Tomcat调优主要内容如下:1. ...

  9. [调参]CV炼丹技巧/经验

    转自:https://www.zhihu.com/question/25097993 我和@杨军类似, 也是半路出家. 现在的工作内容主要就是使用CNN做CV任务. 干调参这种活也有两年时间了. 我的 ...

随机推荐

  1. JNI创建共享内存导致JVM terminated的问题解决(segfault,shared memory,内存越界,内存泄漏,共享内存)

    此问题研究了将近一个月,最终发现由于JNI不支持C中创建共享内存而导致虚拟机无法识别这块共享内存,造成内存冲突,最终虚拟机崩溃. 注意:JNI的C部分所使用的内存也是由JVM创建并管理的,所以C创建了 ...

  2. 使用Jenkins编译打包SpringCloud微服务中的个别目录

    意义说明: 使用Jenkins从Gogs拉取SpringCloud微服务,拉取的是整个仓库的内容,分好多个模块文件夹,但是使用maven编译打包的话只编译打包指定的模块文件夹 Gogs Webhook ...

  3. hdu 2102 a计划问题。。 双层dfs问题

    Problem Description 可怜的公主在一次次被魔王掳走一次次被骑士们救回来之后,而今,不幸的她再一次面临生命的考验.魔王已经发出消息说将在T时刻吃掉公主,因为他听信谣言说吃公主的肉也能长 ...

  4. jmeter接口测试中的用例数据分离

    用jmeter做接口测试的话,一个jmx文件就可以是一个用例,而用例的设计多数还是等价类.边界值等方法.用例越来越多的时候,维护比较麻烦,所以可以把用例的数据存在csv文件中,然后通过组件(CSV D ...

  5. GoLand中同一个目录下的package无法调用

    代码结构: 三个代码的package 都是 pipefilter,执行split_filter_test.go 就会提示   undefined:xxxxxxx Golang实际都可以自己补全另一个文 ...

  6. Windows10无法远程连接

    1.在桌面计算机上,选择右键->属性.左侧任务列表中选择远程设置(如果桌面没有计算机图标,按键盘+R 输入 control system) 钩上允许 远程连接到此计算机 正常情况下,这样就可以在 ...

  7. .Net Core Mvc/WebApi 返回结果封装

    一.背景 为了方便开发,简化代码,也为了与前端方便对接,需要对接口服务返回结果进行统一处理. .Net Core 中返回结果的处理与 .Net Framework 中的处理不一样. .Net Core ...

  8. Apollo 与 .net core

    appsettings配置内容 { "Apollo": { "AppId": "netcore", "Env": &qu ...

  9. python绘图之turtle库函数的用法

    Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x.纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行 ...

  10. VBA Exit Do语句

    当想要根据特定标准退出Do循环时,可使用Exit Do语句. 它可以同时用于Do...While和Do...Until直到循环. 当Exit Do被执行时,控制器在Do循环之后立即跳转到下一个语句. ...