BZOJ3527:[ZJOI2014]力(FFT)
Description
Input
Output
n行,第i行输出Ei。与标准答案误差不超过1e-2即可。
Sample Input
4006373.885184
15375036.435759
1717456.469144
8514941.004912
1410681.345880
Sample Output
3439.793
7509018.566
4595686.886
10903040.872
Solution
Code
1 #include<iostream> 2 #include<cstring> 3 #include<cstdio> 4 #include<cmath> 5 #define N (400000+100) 6 using namespace std; 7 8 double pi=acos(-1.0); 9 double q[N],g[N],ans[N]; 10 int n,fn,l,r[N]; 11 struct complex 12 { 13 double x,y; 14 complex(double xx=0,double yy=0) 15 { 16 x=xx; y=yy; 17 } 18 }a[N],b[N]; 19 20 complex operator + (complex a,complex b){return complex(a.x+b.x,a.y+b.y);} 21 complex operator - (complex a,complex b){return complex(a.x-b.x,a.y-b.y);} 22 complex operator * (complex a,complex b){return complex(a.x*b.x-a.y*b.y,a.x*b.y+a.y*b.x);} 23 complex operator / (complex a,double b){return complex(a.x/b,a.y/b);} 24 25 void FFT(int n,complex *a,int opt) 26 { 27 for (int i=0; i<n; ++i) 28 if (i<r[i]) 29 swap(a[i],a[r[i]]); 30 for (int k=1; k<n; k<<=1) 31 { 32 complex wn=complex(cos(pi/k),opt*sin(pi/k)); 33 for (int i=0; i<n; i+=(k<<1)) 34 { 35 complex w=complex(1,0); 36 for (int j=0; j<k; ++j,w=w*wn) 37 { 38 complex x=a[i+j], y=w*a[i+j+k]; 39 a[i+j]=x+y; a[i+j+k]=x-y; 40 } 41 } 42 } 43 if (opt==-1) for (int i=0; i<n; ++i) a[i]=a[i]/n; 44 } 45 46 void Calc() 47 { 48 memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); 49 for (int i=0; i<=n; ++i) a[i].x=q[i]; 50 for (int i=0; i<=n; ++i) b[i].x=g[i]; 51 FFT(fn,a,1); FFT(fn,b,1); 52 for (int i=0; i<=fn; ++i) 53 a[i]=a[i]*b[i]; 54 FFT(fn,a,-1); 55 } 56 57 int main() 58 { 59 scanf("%d",&n); 60 for (int i=1; i<=n; ++i) 61 scanf("%lf",&q[i]); 62 for (int i=1; i<=n; ++i) 63 g[i]=1.0/i/i; 64 fn=1; 65 while (fn<=n+n) fn<<=1, l++; 66 for (int i=0; i<fn; ++i) 67 r[i]=(r[i>>1]>>1) | ((i&1)<<(l-1)); 68 69 Calc(); 70 for (int i=1; i<=n; ++i) 71 ans[i]=a[i].x; 72 for (int i=1; i<=n/2; ++i) 73 swap(q[i],q[n-i+1]); 74 Calc(); 75 for (int i=1; i<=n; ++i) 76 printf("%.6lf\n",ans[i]-a[n-i+1].x); 77 }
转载于:https://www.cnblogs.com/refun/p/8853475.html
BZOJ3527:[ZJOI2014]力(FFT)相关推荐
- BZOJ3527: [Zjoi2014]力 [FFT]
化简之后,发现减号左边的式子是一个卷积.右边的式子,把一个函数倒序就是卷积,分别FFT,求解答案. 大佬blog: https://blog.csdn.net/kyleyoung_ymj/articl ...
- bzoj3527: [Zjoi2014]力 fft
题意:求\(E_i=\sum_{j=1}^{i-1}qj/{(i-j)^2}-\sum_{j=i+1}^{n}qj/{(i-j)^2}\) 题解:构造前几个Ei,可以发现\(E_i=a_i*b_{j- ...
- BZOJ3527: [Zjoi2014]力
BZOJ3527: [Zjoi2014]力 Description 给出n个数qi,给出Fj的定义如下: 令Ei=Fi/qi,求Ei. Input 第一行一个整数n. 接下来n行每行输入一个数,第i行 ...
- P3338 [ZJOI2014]力 FFT + 推式子
传送门 文章目录 题意: 思路: 题意: 思路: 这个式子看起来很FFTFFTFFT,让我们来化简一下. 考虑EEE中直接将qiq_iqi约掉,所以Ei=∑j=1i−1qj(i−j)2−∑j=i+1 ...
- P3338 [ZJOI2014]力 [FFT]
P3338[ZJOI2014]力P3338 [ZJOI2014]力P3338[ZJOI2014]力 给出n个数qi,给出Fj的定义如下: Fj=∑i<jqiqj(i−j)2−∑i>jqiq ...
- 【ZJOI2014】【BZOJ3527】 力 (FFT)
Description 给出序列 {qi} \{q_i\},求 Ei=∑j<iqj(i−j)2−∑j>iqj(i−j)2 E_i = \sum_{ji}\frac{q_j}{(i-j)^2 ...
- [bzoj3527][Zjoi2014]力
来自FallDream的博客,未经允许,请勿转载,谢谢. 给定n(n<=100000)个数qi 求Ei=Fi/qi 题解:首先约去所有的qi,然后就是一个卷积了,Ai=qi,Bi=1/i^2搞一 ...
- BZOJ.3527.[ZJOI2014]力(FFT)
题目链接 \(Descripiton\) 给出\(q[\ ]\),\[F[j]=\sum_{i<j}\frac{q_iq_j}{(i-j)^2}-\sum_{i>j}\frac{q_iq_ ...
- bzoj 3527 [Zjoi2014]力——FFT
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3527 把 q[ i ] 除掉.设 g[ i ] = i^2 ,有一半的式子就变成卷积了:另一 ...
最新文章
- webpack基础概念
- 超级史诗灯光人舞蹈,神作!
- C++ STL标准模板库(queue)
- vscode取消底部横滚动条(自动换行)
- 进程和线程的区别【转】
- 联调测试是什么意思_功能模块提测前注意这几件事,再也不怕被测试diss了
- 一个资深系统管理员的O2O实践(引子)
- 本地html如何导出pdf,html表格以pdf格式导出到本地
- mybatis-generator 根据表生成对应文件
- unity, itween 对不透明对象使用FadeTo需要先更换material
- c语言转换绝对值函数的程序,c语言abs(c语言求绝对值的程序)
- 二极管的工作原理,什么是二极管?
- Win10 安装NASM
- IMX6ULL与IMX6UL异同(主要是优化了其成本:安全功能减低,优化功耗EMC SIM模块删除等与但和I.MX6UltraLite芯片是PIN-2-PIN兼容的)
- 电脑控制手机,无需Root、无线连接,免费开源跨平台的scrcpy比其他收费软件还好用!
- JIRA-使用教程_界面_创建、方案配置
- 平面设计面试官常问的问题有哪些?
- 2021西部云安全峰会召开:“云安全优才计划”发布,腾讯云安全攻防矩阵亮相
- [读书笔记]Core Java: Volume I - Fundamentals Chapter 8
- 小梅哥FPGA:基于线性序列机的TLC5620型DAC驱动设计
热门文章
- 无失真压缩法可以减少冗余_机考样题(选择题带标准答案).docx
- 微信小程序 全局变量异步函数_微信小程序制作简述
- python可变序列_python序列中可变数据类型有什么
- oracle的have,Does oracle have “auto number” data type [duplicate]
- 制作mac系统安装U盘
- wireshark1.8捕获无线网卡的数据包——找不到无线网卡!
- HDOJ 1247 HDU 1247 Hat’s Words ACM 1247 IN HDU
- SharePoint2010内容类型剖析(四)
- 关于opencv中Mat赋值(浅拷贝,深拷贝)原理
- 图像处理的傅里叶变换理解