【BZOJ】3527: [Zjoi2014]力
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3527
把${f_i}$消去之后换元就是卷积的形式,直接算就可以了。
- #include<iostream>
- #include<cstdio>
- #include<algorithm>
- #include<vector>
- #include<cstdlib>
- #include<cmath>
- #include<complex>
- #include<cstring>
- using namespace std;
- #define maxn 1001000
- #define llg long long
- #define Pi acos(-1.0)
- #define yyj(a) freopen(a".in","r",stdin),freopen(a".out","w",stdout);
- typedef complex<double> XU;
- struct FFT
- {
- llg rev[maxn],L,n;
- double c[maxn];
- void fft(XU *z,llg f)
- {
- for (llg i=;i<n;i++) if (i<rev[i]) swap(z[i],z[rev[i]]);
- for (llg i=;i<n;i*=)
- {
- XU wn(cos(Pi/i),sin(Pi/i));
- for (llg p=i*,j=;j<n;j+=p)
- {
- XU w(,);
- for (llg k=;k<i;k++,w*=wn)
- {
- XU x=z[j+k],y=z[j+k+i]*w;
- z[j+k]=x+y,z[j+k+i]=x-y;
- }
- }
- }
- if (f==-) reverse(z+,z+n);
- }
- XU a[maxn],b[maxn];
- void work()
- {
- llg m=(n-)*;
- for (n=;n<=m;n*=) L++;
- for (llg i=;i<n;i++) rev[i]=(rev[i/]/)|((i&)<<(L-));
- fft(a,),fft(b,);
- for (llg i=;i<n;i++) a[i]*=b[i];
- fft(a,-);
- for (llg i=;i<n;i++) c[i]=(a[i].real()/n);
- }
- }F1,F2;
- double x[maxn];
- int main()
- {
- yyj("li");
- llg N;
- cin>>N;
- F1.n=N;
- for (llg i=;i<N;i++) scanf("%lf",&x[i]),F1.a[i]=x[i];
- for (llg i=;i<=N-;i++) F1.b[i]=(double)-1.0/(double)(N--i)/(double)(N--i);
- for (llg i=N;i<=*N-;i++) F1.b[i]=(double)1.0/(double)(N--i)/(double)(N--i);
- F1.work();
- for (llg i=N-;i<*N-;i++) printf("%.9lf\n",F1.c[i]) ;
- return ;
- }
【BZOJ】3527: [Zjoi2014]力的更多相关文章
- BZOJ 3527: [Zjoi2014]力
Description 求 \(E_i=\sum _{j=0}^{i-1} \frac {q_j} {(i-j)^2}-\sum _{j=i+1}^{n-1} \frac{q_j} {(i-j)^2} ...
- BZOJ 3527: [ZJOI2014]力(FFT)
BZOJ 3527: [ZJOI2014]力(FFT) 题意: 给出\(n\)个数\(q_i\),给出\(Fj\)的定义如下: \[F_j=\sum \limits _ {i < j} \fra ...
- ●BZOJ 3527 [Zjoi2014]力
题链: http://www.lydsy.com/JudgeOnline/problem.php?id=3527 题解: FFT求卷积. $$\begin{aligned}E_i&=\frac ...
- bzoj 3527 [Zjoi2014]力——FFT
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3527 把 q[ i ] 除掉.设 g[ i ] = i^2 ,有一半的式子就变成卷积了:另一 ...
- bzoj 3527 [Zjoi2014] 力 —— FFT
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3527 看了看TJ才推出来式子,还是不够熟练啊: TJ:https://blog.csdn.n ...
- bzoj 3527: [Zjoi2014]力 快速傅里叶变换
题意: 给出n个数qi,给出Fj的定义如下: 令Ei=Fi/qi,求Ei. fft的那一堆东西还是背不到啊...这次写虽说完全自己写的,但是还是在参见了以前fft程序的情况下调了很久,主要在如下几点 ...
- 数学(FFT):BZOJ 3527 [Zjoi2014]力
题目在这里:http://wenku.baidu.com/link?url=X4j8NM14MMYo8Q7uPE7-7GjO2_TXnMFA2azEbBh4pDf7HCENM3-hPEl4mzoe2w ...
- BZOJ 3527: [Zjoi2014]力(FFT)
我们看一下这个函数,很容易就把他化为 E=sigma(aj/(i-j)/(i-j))(i>j)-sigma(aj/(i-j)/(i-j))(j>i) 把它拆成两半,可以发现分子与分母下标相 ...
- 【刷题】BZOJ 3527 [Zjoi2014]力
Description 给出n个数qi,给出Fj的定义如下: 令Ei=Fi/qi,求Ei. Input 第一行一个整数n. 接下来n行每行输入一个数,第i行表示qi. n≤100000,0<qi ...
- bzoj 3527: [Zjoi2014]力 快速傅里叶变换 FFT
题目大意: 给出n个数\(q_i\)定义 \[f_i = \sum_{i<j}{\frac{q_iq_j}{(i-j)^2}} - \sum_{i>j}\frac{q_iq_j}{(i-j ...
随机推荐
- Selenium 常用定位对象元素的方法
常见定位对象元素的方法 在使用selenium webdriver进行元素定位时,通常使用findElement或findElements方法结合By类返回的元素句柄来定位元素.其中By类的常用定位方 ...
- MFC超链接
最近写一个小的对话框程序时,想加一个文本超链接,研究了一下,发上自己的研究成果,供大家参考.下面说说完整的步骤. (假定静态文本ID为ID_STATIC) 首先,设置鼠标的形状及响应鼠标点击 第一步, ...
- Spring IOC 和 AOP
一. IOC 1. 概念及原理 IOC: Inversion of Control(控制反转)是一种设计思想,就是容器控制应用程序所需要的外部资源的创建和管理,然后将其反转给应用程序.对象及其依赖对象 ...
- sql server 触发器的简单用法
触发器 -- 一下写的都是我对触发器的理解 当在执行insert . delete . 等操作的时候 随便要做一些额外的操作, 比如在添加的时候就会将新添加的数据存到inserted表中 写个实例 ...
- Mysql初级第三天(wangyun)
1.JDBC简介 1).数据库驱动 2).SUN公司为统一数据库的操作,定义了一套Java操作数据库的规范,称之为JDBC. 3).JDBC全称:Java Database Connectivity( ...
- thinkphp 开启事物
$Member->startTrans();//启动事务 // 提交事务$ Member->commit(); // 事务回滚$Member ->rollback();
- django加载静态文件
在一个网页中,不仅仅只有一个 html 骨架,还需要 css 样式文件. js 执行文件以及一些图片等,因此在 DTL 中加载静态文件是一个必须要解决的问题.在 DTL 中,使用 static 标签来 ...
- P4219 [BJOI2014]大融合(LCT)
P4219 [BJOI2014]大融合 对于每个询问$(u,v)$所求的是 ($u$的虚边子树大小+1)*($v$的虚边子树大小+1) 于是我们再开个$si[i]$数组表示$i$的虚边子树大小,维护一 ...
- HAProxy实现slave负载均衡[高可用]
下面要执行的是HAProxy部分 这是一个集群,其他的部分在: mysql-cluster 7.3.5安装部署 mysql主备部署[高可用] mysql主备切换[高可用] mysql读写分离[高可用] ...
- body-parser 用法
1.下载 body-parser 模块 : npm install body-parser 2.require body-parser 模块(引入),并用一个变量接收(此处栗子变量为 bodyp ...