博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bzoj3527 [Zjoi2014]力
阅读量:4695 次
发布时间:2019-06-09

本文共 1963 字,大约阅读时间需要 6 分钟。

[Zjoi2014]力

Time Limit: 30 Sec Memory Limit: 256 MBSec Special Judge

Description

给出n个数qi,给出Fj的定义如下:

1330366-20180503214023337-1396536096.jpg

令Ei=Fi/qi,求Ei.

Input

第一行一个整数n。

接下来n行每行输入一个数,第i行表示qi。
n≤100000,0<qi<1000000000

Output

n行,第i行输出Ei。与标准答案误差不超过1e-2即可。

Sample Input

5

4006373.885184
15375036.435759
1717456.469144
8514941.004912
1410681.345880

Sample Output

-16838672.693

3439.793
7509018.566
4595686.886
10903040.872

需要学习FFT乱搞卷积的请进。。。。这俩卷积很典型的啦~

表示我手贱。。。所以调试很刺激。。。。(请看样例。。。)
并且你需要在复数里面调试。。。(我已经死过一会了233)

#include
#define pi acos(-1)using namespace std;const int maxn = 3e5 + 5;int n, len, pl = 1;int rev[maxn];complex
g[maxn], a[maxn], b[maxn], ans1[maxn], ans2[maxn];inline void putit(){ scanf("%d", &n); n--; double x; for(int i = 0; i <= n; ++i) { scanf("%lf", &x), a[i] = x, b[n - i] = x; }}inline void prepare(){ pl = 2 * n; for(int i = 1; i <= n; ++i) g[i] = ((1.0) / i / i); for(n = 1; n <= pl; n <<= 1) len++; for(int i = 0; i <= n; ++i) rev[i] = ((rev[i >> 1] >> 1) | ((i & 1) << (len - 1)));}inline void FFT(complex
*t, int mark){ for(int i = 0; i < n; ++i) if(i < rev[i]) swap(t[i], t[rev[i]]); for(int i = 1; i < n; i <<= 1){ complex
wn(cos(pi / i), mark * sin(pi / i)); for(int j = 0; j < n; j = j + 2 * i){ complex
w(1, 0); for(int k = j; k < j + i; ++k, w *= wn){ complex
lin1 = t[k], lin2 = t[k + i] * w; t[k] = lin1 + lin2; t[k + i] = lin1 - lin2; } } } if(mark == -1) for(int i = 0; i < n; ++i) t[i] /= n;}inline void workk(){ FFT(g, 1); FFT(a, 1); FFT(b, 1); for(int i = 0; i < n; ++i) ans1[i] = a[i] * g[i], ans2[i] = b[i] * g[i]; FFT(ans1, -1); FFT(ans2, -1);}inline void print(){ n = pl / 2; for(int i = 0; i <= n; ++i) printf("%.3lf\n", ans1[i].real() - ans2[n - i].real());}int main(){ putit(); prepare(); workk(); print(); return 0;}

转载于:https://www.cnblogs.com/LLppdd/p/8987685.html

你可能感兴趣的文章
另一种图片上传 jquery.fileupload.js
查看>>
ibatis 中isNull, isNotNull与isEmpty, isNotEmpty区别
查看>>
div+css命名参考
查看>>
常用工具集合
查看>>
第二章 开发环境配置
查看>>
java中函数传值和传地址的问题
查看>>
Debian下载地址
查看>>
VideoView播放视频
查看>>
获取gcc和clang的内置宏定义
查看>>
CF1027D Mouse Hunt题解
查看>>
php 1-10,1.10 PHP异常处理
查看>>
php 循环赋值,thinkphp如何在js中循环赋值
查看>>
mysql 字符串类型 小数,字段类型(数据类型)
查看>>
php比jsp慢,再论程序的执行速度的问题,(续asp,php和jsp 等动态编程语言比较)
查看>>
类方法的实例python,Python中的实例方法类方法 静态方法
查看>>
linux mysql集群搭建视频,mysql高可用集群视频教程linux读写分离分库分表负载均衡...
查看>>
Linux汇编代码执行函数,linux – 使用GNU汇编程序在x86_64中调用printf
查看>>
英文字母哈夫曼编码c语言,哈夫曼编码c语言实现 哈夫曼编码的分析与实现.doc...
查看>>
万年历C语言项目报告,万年历设计报告
查看>>
c语言的结构化的程序设计语言,C语言程序设计结构化程序设计.ppt
查看>>