传送门

题意:给出nnn个数qiq_iqi​,定义Fj=∑i&lt;jqiqj(i−j)2−∑i&gt;jqiqj(i−j)2F_j=\sum\limits_{i&lt;j}\frac{q_iq_j}{(i-j)^2}-\sum\limits_{i&gt;j}\frac{q_iq_j}{(i-j)^2}Fj​=i<j∑​(i−j)2qi​qj​​−i>j∑​(i−j)2qi​qj​​,令Ei=FiqiE_i=\frac{F_i}{q_i}Ei​=qi​Fi​​,求EiE_iEi​

Ei=∑j=1i−1qj(i−j)2−∑j=i+1nqj(i−j)2E_i=\sum\limits_{j=1}^{i-1}\frac{q_j}{(i-j)^2}-\sum\limits_{j=i+1}^n\frac{q_j}{(i-j)^2}Ei​=j=1∑i−1​(i−j)2qj​​−j=i+1∑n​(i−j)2qj​​
设Ai=∑j=1i−1qj(i−j)2,Bi=∑j=i+1nqj(i−j)2A_i=\sum\limits_{j=1}^{i-1}\frac{q_j}{(i-j)^2},B_i=\sum\limits_{j=i+1}^n\frac{q_j}{(i-j)^2}Ai​=j=1∑i−1​(i−j)2qj​​,Bi​=j=i+1∑n​(i−j)2qj​​,分开求
设fi=1i2f_i=\frac{1}{i^2}fi​=i21​,并规定f0=0f_0=0f0​=0,那么Ai=∑j+k=iqjfkA_i=\sum\limits_{j+k=i}q_jf_kAi​=j+k=i∑​qj​fk​,FFT求卷积即可
如果设pi=qn−ip_i=q_{n-i}pi​=qn−i​即把qqq翻转,那么
Bi=∑j=1n−iqj+ij2=∑j=1n−ipn−i−jj2=∑j+k=n−ipjfkB_i=\sum\limits_{j=1}^{n-i}\frac{q_{j+i}}{j^2}=\sum\limits_{j=1}^{n-i}\frac{p_{n-i-j}}{j^2}=\sum\limits_{j+k=n-i}p_jf_kBi​=j=1∑n−i​j2qj+i​​=j=1∑n−i​j2pn−i−j​​=j+k=n−i∑​pj​fk​,FFT求卷积即可

#include <cstdio>
#include <cmath>
#include <algorithm>const int maxn = 1e5 + 207;
const double pi = acos(-1.0);struct Complex {double a, b;Complex(double x, double y) : a(x), b(y) {}Complex() : Complex(0.0, 0.0) {}
};
inline Complex operator+(const Complex &lhs, const Complex &rhs) {return Complex(lhs.a + rhs.a, lhs.b + rhs.b);
}
inline Complex operator-(const Complex &lhs, const Complex &rhs) {return Complex(lhs.a - rhs.a, lhs.b - rhs.b);
}
inline Complex operator*(const Complex &lhs, const Complex &rhs) {return Complex(lhs.a * rhs.a - lhs.b * rhs.b, lhs.a * rhs.b + lhs.b * rhs.a);
}int r[maxn << 2], lim, l, n;
Complex a[maxn << 2], b[maxn << 2], c[maxn << 2];inline void fft(Complex *A, int tp) {for (int i = 0; i < lim; ++i)if (i < r[i]) std::swap(A[i], A[r[i]]);for (int mid = 1; mid < lim; mid <<= 1) {Complex wn = Complex(cos(pi / mid), tp * sin(pi / mid));for (int j = 0; j < lim; j += mid << 1) {Complex w = Complex(1, 0);for (int k = 0; k < mid; ++k, w = w * wn) {Complex x = A[j + k], y = w * A[j + k + mid];A[j + k] = x + y;A[j + k + mid] = x - y;}}}if (tp == -1) {for (int i = 0; i < lim; ++i)A[i] = Complex(A[i].a / lim, 0);}
}int main() {scanf("%d", &n);for (int i = 1; i <= n; ++i) {scanf("%lf", &a[i].a);b[n - i].a = a[i].a;}for (int i = 1; i <= n; ++i)c[i].a = 1.0 / i / i;for (lim = 1; lim <= n << 1; lim <<= 1, ++l);for (int i = 0; i < lim; ++i)r[i] = (r[i >> 1] >> 1) | ((i & 1) << (l - 1));fft(a, 1); fft(b, 1); fft(c, 1);for (int i = 0; i <= lim; ++i)a[i] = a[i] * c[i], b[i] = b[i] * c[i];fft(a, -1); fft(b, -1);for (int i = 1; i <= n; ++i)printf("%.5lf\n", a[i].a - b[n - i].a);return 0;
}

[ZJOI2014]力 题解相关推荐

  1. BZOJ3527: [Zjoi2014]力

    BZOJ3527: [Zjoi2014]力 Description 给出n个数qi,给出Fj的定义如下: 令Ei=Fi/qi,求Ei. Input 第一行一个整数n. 接下来n行每行输入一个数,第i行 ...

  2. P3338 [ZJOI2014]力(FFT)

    P3338 [ZJOI2014]力 Fj=∑i=1j−1qi×qj(i−j)2−∑i=j+1nqi×qj(i−j)2Ej=∑i=1j−1qi(i−j)2−∑i=j+1nqi(i−j)2f(i)=qi, ...

  3. P3338 [ZJOI2014]力 FFT + 推式子

    传送门 文章目录 题意: 思路: 题意: 思路: 这个式子看起来很FFTFFTFFT,让我们来化简一下. 考虑EEE中直接将qiq_iqi​约掉,所以Ei=∑j=1i−1qj(i−j)2−∑j=i+1 ...

  4. P3338 [ZJOI2014]力

    P3338 [ZJOI2014]力 卷积 + FFT 题意 思路 Code(921ms) 传送门: https://www.luogu.com.cn/problem/P3338 题意 Fj=∑i=1j ...

  5. P3338 [ZJOI2014]力 [FFT]

    P3338[ZJOI2014]力P3338 [ZJOI2014]力P3338[ZJOI2014]力 给出n个数qi,给出Fj的定义如下: Fj=∑i<jqiqj(i−j)2−∑i>jqiq ...

  6. [卷积系列] P3338 [ZJOI2014]力

    P3338 [ZJOI2014]力 Ej=Fjqj=∑i=1j−1qi(i−j)2−∑i=j+1nqi(i−j)2E_j= \frac{F_{j}}{q_{j}} =\sum_{i=1}^{j-1} ...

  7. 【BZOJ 3527】 [Zjoi2014]力

    3527: [Zjoi2014]力 Description 给出n个数qi,给出Fj的定义如下: 令Ei=Fi/qi,求Ei. Input 第一行一个整数n. 接下来n行每行输入一个数,第i行表示qi ...

  8. BZOJ 3527: [ZJOI2014]力(FFT)

    题意 给出\(n\)个数\(q_i\),给出\(Fj\)的定义如下: \[F_j=\sum \limits _ {i < j} \frac{q_iq_j}{(i-j)^2}-\sum \limi ...

  9. 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- ...

最新文章

  1. 怎么把圆角变直角_明式圆角柜的还原(下)——信民木工DIY达人大赛作品
  2. Android日志系统分析之开篇
  3. 硬盘由于io设备错误无法运行此项请求_移动硬盘坏了真倒霉,祸不单行U盘也坏了,数据怎么存储才安全?...
  4. esp8266单片机透传_ESP8266通过MQTT接入Home Assistant
  5. pythonmax对字符_(MAX第五篇)Python--字符串操作(三)
  6. centos系统下安装python3以及pip3
  7. Qt Creator添加动态dynamics
  8. PHP+Mysql高仿百度知道签到源码演示与下载
  9. afx_msg函数意思
  10. MIK C语言面试两题
  11. 李宏毅老师ML_HW1——PM2.5预测
  12. js文件,同样的路径,拷贝过来的为什么不能访问
  13. javascript回调函数及推论
  14. pytest测试框架(二)---fixture介绍
  15. Html5 小球键盘移动
  16. spring 配置文件被加载两次
  17. (二)pscc学习笔记
  18. 浅谈人机工程应用在数字化工艺中的作用
  19. 吾爱破解python就业班_我吾 区别
  20. nginx实现ip138查询当前ip功能,配置文件实现接口

热门文章

  1. 有事的一天,小事一大堆......
  2. 面向对象开发期末复习概述(七)
  3. 《数据科学入门》(Data Science from Scratch)读书笔记
  4. hexo(sakura)给博客增添侧边栏(回到顶部,跳转评论,深色模式,播放音乐)Valine-1.4.4新版本尝鲜+个性制定(表情包、qq头像、UI样式)
  5. mysql函数 优化_Mysql函数求优化解决思路
  6. 电话交换机和网络交换机_网络中交换机的介绍和工作
  7. 正确的洗澡顺序,据说99%的人都是错的。。
  8. python字符串常见方法
  9. java的常量和变量_JAVA-常量和变量
  10. check the manual that corresponds to your MySQL server version for the right