BZOJ-2194 快速傅立叶之二

FFT模版题。

观察题目,我们可以发现,只要把序列b倒过来,再联想一下乘法运算。。。

我们会发现,将序列a和序列b当作100进制数,做一次乘法,然后从低到高每一位便是答案了(乘完无需进位)

#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <iostream>
#include <cctype>
#include <complex>
#define rep(i, l, r) for(int i=l; i<=r; i++)
#define down(i, l, r) for(int i=l; i>=r; i--)
#define maxn 400009
#define cd complex <double>
#define PI acos(0.0)*2.0
#define ll long long
using namespace std;
inline int read()
{int x=0, f=1; char ch=getchar();while (!isdigit(ch)) {if (ch=='-') f=-1; ch=getchar();}while (isdigit(ch)) x=x*10+ch-'0', ch=getchar();return x*f;
}
cd a[maxn], b[maxn], c[maxn], A[maxn];
int n, m, n1[maxn], n2[maxn], s[maxn];
int ans[maxn];void fft(cd *a, bool flag)
{rep(i, 0, n-1) s[i]=0;for(int i=1, j=n; i<n; i*=2, j/=2) rep(h, j/2, j-1) s[h]+=i;for(int i=1; i<n; i*=2) rep(j, 0, i-1) s[j+i]+=s[j];rep(i, 0, n-1) A[i]=a[s[i]];double pi=flag?PI:-PI;for(int step=1; step<n; step*=2){cd e=exp(cd(0, 2.0*pi/double(step*2))), w=cd(1, 0);for (int pos=0; pos<step; pos++, w*=e) for(int i=pos; i<n; i+=step*2){cd ret=A[i], rec=w*A[i+step];A[i]=ret+rec, A[i+step]=ret-rec;}}if (!flag) rep(i, 0, n-1) A[i]/=n;rep(i, 0, n-1) a[i]=A[i];
}int main()
{m=read(); rep(i, 1, m) n1[m-i]=read(), n2[i-1]=read();n=1; while (n<m*2) n*=2;rep(i, 0, n-1) a[i]=cd(n1[i], 0); fft(a, true);rep(i, 0, n-1) b[i]=cd(n2[i], 0); fft(b, true);rep(i, 0, n-1) c[i]=a[i]*b[i]; fft(c, false);rep(i, 0, m-1) ans[i]=c[i].real()+0.5;down(i, m-1, 0) printf("%d\n", ans[i]);
}

转载于:https://www.cnblogs.com/NanoApe/p/4479405.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/419961.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python:IndentationError: unexpected indent

python遇到错误&#xff1a;IndentationError: unexpected indent解决办法&#xff1a;python因为是根据格式缩进来识别逻辑块的&#xff0c;所以对格式要求极为严格&#xff0c;出现上述错误&#xff0c;一般都是tab和空格没有对齐。检查了一下&#xff0c;的确编辑器上多出来…

Mvc 学习笔记(一)

1. MVC 表示 模型-视图-控制器。MVC是一种用于开发应用程序的模式&#xff0c;具备良好的架构&#xff0c;可测试和易于维护。基于MVC应用程序中包含&#xff1a; Models&#xff1a;表示应用程序的数据&#xff0c;并使用验证逻辑强制执行业务规则的数据的类。 Views&#xff…

html锚点反向联动,小程序菜单左右联动

最近做小程序的时候&#xff0c;产品提了一个需求&#xff1a;1.左侧的菜单栏和右侧的菜单可分别滚动&#xff0c;滚动左侧不影响右侧&#xff0c;滚动右侧左侧随之联动高亮显示所在的菜单分类。2.点击下方左侧导航菜单栏&#xff0c;高亮显示被点击的菜单分类&#xff0c;右侧…

第6/24周 聚集索引

上个星期我向你介绍了堆表&#xff08;heap tables&#xff09;。我们说过&#xff0c;在SQL Server表可以是堆表&#xff08;Heap Table&#xff09;或者聚集表&#xff08;Clustered Table&#xff09;——一个在它上面有聚集索引&#xff08;Clustered Index&#xff09;定义…

index.html乱码问题,用apache打开文件index显示乱码为什么

用apache打开文件index显示乱码怎么回事这不是 apache 的问题。是 php 本身编码&#xff0c;或者 数据库编码问题。---------------------------给你看一篇别人的问题------------------------让人烦恼的 PHP UTF8 乱码解决方案088月2009一般来说&#xff0c;如果将 各个文件类…

广西2021普通高考成绩查询,2021广西高考成绩什么时候出

2021广西高考成绩什么时候出2021-04-22 10:39:21文/叶丹2021广西高考成绩公布时间&#xff1a;预计6月23日。预计6月23日对考生开放高考成绩查询通道&#xff0c;并公布录取最低控制分数线。届时考生可查询高考成绩&#xff0c;请考生密切关注广西招生考试院官网、官方微博、官…

vmware安装中标麒麟高级服务器操作系统 V7.0

vmware安装中标麒麟高级服务器操作系统 V7.0 1、下载中标麒麟高级服务器操作系统 V7.0镜像2、安装中标麒麟高级服务器操作系统 V7.02.1、新建虚拟机2.2、安装虚拟机 3、配置中标麒麟高级服务器操作系统 V7.03.1、登录系统3.2、配置静态IP地址 和 dns3.3、查看磁盘分区3.4、查看…

HDFS Safemode问题

处于safemode的集群是无法接收不论什么写操作的&#xff0c;包含创建文件夹、删除文件、改动文件、上传文件等等。 关于safemode&#xff0c;在http://www.iteblog.com/archives/977中讲的比較具体了。hdfs集群在启动和关闭的时候通常会有一段时间处于safemode&#xff0c;假设…

2021年衢州高考的成绩查询,2021年衢州高考状元是谁分数多少分,历年衢州高考状元名单...

2020年衢州一年一度的高考考试已经结束&#xff0c;今年衢州高考状元是谁呢&#xff0c;衢州高考状元出自哪个高中学校&#xff0c;文理科分数是多少分&#xff0c;一起来了解。一、2020年衢州高考状元名单资料2020年衢州高考状元名单和学校相关信息&#xff0c;截至目前发文时…

java笔试练习题

选择题(共50题&#xff0c;每题1.5分&#xff0c;共75分。多选题选不全或选错都不得分。)1&#xff0e; 以下属于面向对象的特征的是&#xff08;C,D&#xff09;。&#xff08;两项&#xff09;A) 重载B) 重写C) 封装D) 继承2&#xff0e; 以下代码运行输出是&#xff08;C&am…

html块左右排列,html – 如何均匀地排列多个内嵌块元素?

我最近读了一个非常聪明的技巧来完成你所要求的工作。简而言之&#xff0c;你只需要使用text-align&#xff1a;justify;在容器元素上实现这一点&#xff0c;结合一个额外的不可见块。这是因为内联块元素被视为文本内容的一部分&#xff0c;每个元素实际上是单个单词。使用对齐…

org.hibernate.MappingException: Could not determine type for: java.util.List, at table: user, for...

异常详情&#xff1a; Caused by: org.hibernate.MappingException: Could not determine type for: java.util.List, at table: ss_user, for columns: [org.hibernate.mapping.Column(roles)] at org.hibernate.mapping.SimpleValue.getType(SimpleValue.java:336) ~[hib…

计算机主机机箱面板指示灯,电脑主机指示灯不亮了是什么原因

公告&#xff1a; 为响应国家净网行动&#xff0c;部分内容已经删除&#xff0c;感谢读者理解。话题&#xff1a;电脑主机指示灯不亮了是什么原因&#xff1f;回答&#xff1a;是指示灯坏了。或者是主机主板出了问题。参考回答&#xff1a;绿灯不亮是电源问题红灯不亮是硬盘或者…

html中水印影响文字复制,HTML中文字水印的清除方法_HTML教程

HTML中文字水印的清除方法我们在浏览某些网站的时候&#xff0c;看到不错的网页可能就想把上面的内容给复制下来&#xff0c;但是有的网站就是为了防止别人复制&#xff0c;而在每段文字的结尾处增加了干扰码——与背景颜色相同的文字。清除文字水印的方法比较多&#xff0c;主…

影响中国历史的十篇政治美文

转载于:https://www.cnblogs.com/yymn/p/4488728.html

什么是计算机网络教学反思,《计算机网络实训之常用的网络工具》教学反思

《计算机网络实训之常用的网络工具》教学反思常用的网络工具是网络管理员必须要掌握好的内容&#xff0c;本实验在学习完相关理论知识的基础上&#xff0c;让学生动手实践&#xff0c;亲自试验常用网络工具的使用。因为直观明了&#xff0c;马上见效&#xff0c;学生有了即时体…