BZOJ 3527 【ZJOI2014】 力
题目链接:力
听说这道题是\(FFT\)板子题,于是我就来写了……
首先可以发现这个式子:\[E_i=\sum_{j<i}\frac{q_j}{(i-j)^2}-\sum_{j>i}\frac{q_j}{(i-j)^2} \]
然后可以对两半分别考虑一下。发现下标刚好是\(j+(i-j)=i\),于是我们就可以开始构(gao)造(shi)了,弄俩多项式出来:
\[A_1(x)=0x^0+q_1x^1+q_2x^2+\dots+q_nx^n\]
\[A_2(x)=\frac{-1}{n^2}x^0+\frac{-1}{(n-1)^2}x^1+\dots+0x^n+\dots+\frac{1}{(n-1)^2}x^{2n-1}+\frac{1}{n^2}x^{2n}\]
把这两个多项式乘起来,取次数为\((n,2n]\)的项前面的系数即为答案。
实际上,把多函数\(A_1(x)\)的系数全部左移一位也是可以的,只不过答案的区间要跟着移一下。
下面贴代码:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<complex>
#define File(s) freopen(s".in","r",stdin),freopen(s".out","w",stdout)
#define C complex<double>
#define maxn 300010
#define pi (acos(-1)) using namespace std;
typedef double llg; int n,m,L,R[maxn];
C a[maxn],b[maxn]; llg gi(int x){return 1.0*x*x;}
void fft(C *a){
for(int i=0;i<n;i++) if(i<R[i]) swap(a[i],a[R[i]]);
for(int i=1;i<n;i<<=1){
C wn(cos(pi/i),sin(pi/i)),x,y;
for(int j=0;j<n;j+=(i<<1)){
C w(1,0);
for(int k=0;k<i;k++,w*=wn){
x=a[j+k]; y=w*a[j+i+k];
a[j+k]=x+y; a[j+i+k]=x-y;
}
}
}
} int main(){
scanf("%d",&n); m=n;
for(int i=0;i<n;i++) scanf("%lf",&a[i].real());
for(int i=0;i<n;i++) b[i].real()=-1.0/gi(n-i),b[2*n-i]=-b[i];
for(n=1;n<=(m<<1);n<<=1) L++;
for(int i=0;i<n;i++) R[i]=(R[i>>1]>>1)|((i&1)<<(L-1));
fft(a); fft(b);
for(int i=0;i<n;i++) a[i]*=b[i];
fft(a); reverse(a+1,a+n);
for(int i=m;i<(m<<1);i++) printf("%.6lf\n",a[i].real()/n);
return 0;
}
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 ...
随机推荐
- python-social-auth with Django: ImportError: No module named 'social_django' 解决方法
To use Django with python social auth, you need to install the Django app as well. You can specify t ...
- windows 10激活
1.安装Microsoft Toolkit 解压,安装 2.打开Microsoft Toolkit软件 点击下面红色框框 等到出现下面内容后,继续下一步 3.点击下面按钮 等待片刻后,出现下面结果,就 ...
- [Python模块学习]用qrcode模块生成二维码
转自:https://blog.csdn.net/jy692405180/article/details/65937077
- Python开发【Django】:图片验证码、KindEditor
图片验证码 生成图片验证码需要以下: session check_code.py(依赖:Pillow,字体文件) 模块安装 pip install Pillow src属性后面加? 在utils下拷贝 ...
- Ubuntu操作异常汇总
1.使用Ubuntu的apt-get安装软件时出现以下错误: Reading package lists... Done Building dependency tree... Done Packag ...
- POJ -1062 昂贵的聘礼(前向星 && SPFA)
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/u013497151/article/details/30299671 题目链接:id=1062&qu ...
- 【spring mvc】application context中【bean】的生命周期
生命周期过程 主要分为四部分: 一.实例化 1. 当调用者通过 getBean( name )向 容器寻找Bean 时,如果容器注册了org.springframework.beans.factory ...
- Flask系列(一)flask入门
一.Flask介绍(轻量级的框架,非常快速的就能把程序搭建起来) Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是 ...
- WebKit.net最简单使用方法
WebKit.net是对WebKit的.Net封装,使用它.net程序可以非常方便的集成和使用webkit作为加载网页的容器.这里介绍一下怎么用它来显示一个网页这样的一个最简单的功能. 第一步: 下载 ...
- boost pool 和 object_pool
内存池(Memory Pool)是一种内存分配方式. 通常我们习惯直接使用new.malloc等API申请分配内存,这样做的缺点在于:由于所申请内存块的大小不定,当频繁使用时会造成大量的 ...