【BZOJ3527】[ZJOI2014]力

题面

bzoj

洛谷

题解

易得

\[E_i=\sum_{j<i}\frac{q_j}{(i-j)^2}-\sum_{j>i}\frac{q_j}{(i-j)^2}
\]

设\(f_i=q_i\),\(g_i=i^2\)

\[E_i=\sum_{j<i}f_jg_{i-j}-\sum_{j>i}f_jg_{i-j}
\]

将\(f\)翻转得到\(h\)

\[E_i=\sum_{j<i}f_jg_{i-j}-\sum_{j<i}h_jg_{i-j}
\]

这™就是两个卷积啊。。。

就分别\(FFT\)求出两个卷积然后一减即可

代码

#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <complex>
using namespace std;
#define sqr(x) (1.0 * (x) * (x))
typedef complex<double> Complex;
const double PI = acos(-1.0);
const int MAX_N = 3e5 + 5;
int n, N, M, P, r[MAX_N];
double q[MAX_N], ans[MAX_N];
Complex a[MAX_N], b[MAX_N];
void FFT(Complex *p, int op) {
for (int i = 0; i < N; i++) if (i < r[i]) swap(p[i], p[r[i]]);
for (int i = 1; i < N; i <<= 1) {
Complex rot(cos(PI / i), op * sin(PI / i));
for (int j = 0; j < N; j += (i << 1)) {
Complex w(1, 0);
for (int k = 0; k < i; k++, w *= rot) {
Complex x = p[j + k], y = w * p[i + j + k];
p[j + k] = x + y, p[i + j + k] = x - y;
}
}
}
} int main () {
scanf("%d", &n);
for (int i = 1; i <= n; i++) scanf("%lf", &q[i]);
N = M = n - 1;
for (int i = 0; i <= N; i++) a[i] = q[i + 1], b[i] = 1.0 / sqr(i + 1);
M += N;
for (N = 1; N <= M; N <<= 1, ++P) ;
for (int i = 0; i < N; i++) r[i] = (r[i >> 1] >> 1) | ((i & 1) << (P - 1));
FFT(a, 1); FFT(b, 1);
for (int i = 0; i <= N; i++) a[i] = a[i] * b[i];
FFT(a, -1);
for (int i = 2; i <= n; i++) ans[i] += (double)(a[i - 2].real() / N);
for (int i = 0; i <= N; i++) a[i].real() = b[i].real() = a[i].imag() = b[i].imag() = 0;
for (int i = 0; i < n; i++) a[i] = q[n - i], b[i] = 1.0 / sqr(i + 1);
FFT(a, 1); FFT(b, 1);
for (int i = 0; i <= N; i++) a[i] = a[i] * b[i];
FFT(a, -1);
for (int i = n - 1; i; i--) ans[i] -= (double)(a[n - i - 1].real() / N);
for (int i = 1; i <= n; i++) printf("%0.3lf\n", ans[i]);
return 0;
}

【BZOJ3527】[ZJOI3527]力的更多相关文章

  1. 【BZOJ3527】力(FFT)

    [BZOJ3527]力(FFT) 题面 Description 给出n个数qi,给出Fj的定义如下: \[Fj=\sum_{i<j}\frac{q_i q_j}{(i-j)^2 }-\sum_{ ...

  2. bzoj3527: [Zjoi2014]力 fft

    bzoj3527: [Zjoi2014]力 fft 链接 bzoj 思路 但是我们求得是 \(\sum\limits _{i<j} \frac{q_i}{(i-j)^2}-\sum_{i> ...

  3. [bzoj3527][Zjoi2014]力_FFT

    力 bzoj-3527 Zjoi-2014 题目大意:给定长度为$n$的$q$序列,定义$F_i=\sum\limits_{i<j}\frac{q_iq_j}{(i-j)^2}-\sum\lim ...

  4. 【BZOJ-3527】力 FFT

    3527: [Zjoi2014]力 Time Limit: 30 Sec  Memory Limit: 256 MBSec  Special JudgeSubmit: 1544  Solved: 89 ...

  5. BZOJ3527[ZJOI]力

    无题面神题 原题意: 求所有的Ei=Fi/qi. 题解: qi被除掉了,则原式中的qj可以忽略. 用a[i]表示q[i],用b[j-i]来表示±1/((j-i)^2)(j>i时为正,j<i ...

  6. bzoj3527: [Zjoi2014]力

    #include <iostream> #include <cstdio> #include <cstring> #include <cmath> #i ...

  7. BZOJ3527[Zjoi2014]力——FFT

    题目描述 给出n个数qi,给出Fj的定义如下: 令Ei=Fi/qi,求Ei. 输入 第一行一个整数n. 接下来n行每行输入一个数,第i行表示qi. n≤100000,0<qi<100000 ...

  8. bzoj3527: [Zjoi2014]力 卷积+FFT

    先写个简要题解:本来去桂林前就想速成一下FFT的,结果一直没有速成成功,然后这几天断断续续看了下,感觉可以写一个简单一点的题了,于是就拿这个题来写,之前式子看着别人的题解都不太推的对,然后早上6点多推 ...

  9. 2019.02.28 bzoj3527: [Zjoi2014]力(fft)

    传送门 fftfftfft菜题. 题意简述:给一个数列aia_iai​,对于i=1→ni=1\rightarrow ni=1→n求出ansi=∑i<jai(i−j)2−∑i>jai(i−j ...

随机推荐

  1. centos虚拟机安装,配置静态ip可以访问网络

    centos安装过程中需要注意几个问题 1.选择安装的软件 默认选择的是mininal,应该选择GNEME Desktop 安装的过程中可以设置network 配置linux网络命令 具体配置 退出键 ...

  2. Phonegap 目录结构介绍

    1.Src 该目录包含了所有用户要创建的 Java 源文件 2.gen 为开发工具自动创建 3.assets 目录 用于方一些资源文件 css js html 4.res 目录该目录包含了所有的资源文 ...

  3. python Queue在两个地方

    其一: Source code: Lib/queue.py The queue module implements multi-producer, multi-consumer queues. It ...

  4. iOS开发中的Markdown渲染

    iOS开发中的Markdown渲染 BearyChat的消息是全面支持Markdown语法的,所以在开发BearyChat的iOS客户端的时候需要处理Markdown的渲染. 主要是两套实现方案: 直 ...

  5. Django中模型(三)

    Django中模型(三) 四.模型成员 1.类属性 objects:是Manager类的一个对象,作用是与数据库进行交互. 定义模型类时,没有定义管理器,则默认创建名为objects的管理器. 2.自 ...

  6. datetable dt.select使用詳情

    当你从数据库里取出一些数据,然后要对数据进行整合,你很容易就会想到: 1DataTable dt = new DataTable();//假设dt是由"SELECT C1,C2,C3 FRO ...

  7. 【Git】将项目下的.git目录隐藏

    将项目下的.git目录隐藏 在apache配置文件httpd.conf中添加配置: <Directory "${INSTALL_DIR}/www/mypro/.git"> ...

  8. CSS动画总结效果

       CSS3添加了几个动画效果的属性,通过设置这些属性,可以做出一些简单的动画效果而不需要再去借助JavaScript.CSS3动画的属性主要分为三类:transform.transition以及a ...

  9. Reading Meticulous Measurement of Control Packets in SDN

    SOSR 17 概要 网络流量中有一部分是用于网络管理,(根据packet process survey,该部分流量属于包转发的slow path部分)由于sdn的数控分离,交换机需要向控制器发送大量 ...

  10. oracle基础知识过一遍(原创)

    用户.角色.权限.表空间 create tablespace test1_tablespace datafile ‘test1file.dbf’ size 10m; create temporary  ...