FFTl裸题,小于的部分直接做,大于的部分倒序后再做就行了。

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. const int MAXN = 1 << 18;
  4. const double Pi = acos(-1.0);
  5. struct cp {
  6. double x, y;
  7. cp() { x = y = 0; }
  8. cp(double x, double y) : x(x), y(y) {}
  9. inline cp operator+(const cp &o) const { return cp(x + o.x, y + o.y); }
  10. inline cp operator-(const cp &o) const { return cp(x - o.x, y - o.y); }
  11. inline cp operator*(const cp &o) const { return cp(x * o.x - y * o.y, x * o.y + o.x * y); }
  12. } f[MAXN], g[MAXN], b[MAXN];
  13. int rev[MAXN];
  14. inline void DFT(cp *arr, int len, int flg) {
  15. for (int i = 0; i < len; ++i)
  16. if (i < rev[i])
  17. swap(arr[i], arr[rev[i]]);
  18. for (int i = 2; i <= len; i <<= 1) {
  19. cp wn = cp(cos(2 * Pi / i), flg * sin(2 * Pi / i));
  20. for (int j = 0; j < len; j += i) {
  21. cp w = cp(1, 0);
  22. for (int k = j; k < j + i / 2; ++k, w = w * wn) {
  23. cp x = arr[k], y = arr[k + i / 2] * w;
  24. arr[k] = x + y;
  25. arr[k + i / 2] = x - y;
  26. }
  27. }
  28. }
  29. if (flg == -1)
  30. for (int i = 0; i < len; ++i) arr[i].x /= len;
  31. }
  32. int n;
  33. int main() {
  34. scanf("%d", &n);
  35. for (int i = 1; i <= n; ++i) scanf("%lf", &f[i].x), g[n - i + 1].x = f[i].x, b[i].x = 1.0 / i / i;
  36. int len = 1;
  37. while (len <= (n << 1)) len <<= 1;
  38. for (int i = 0; i < len; ++i) rev[i] = (rev[i >> 1] >> 1) | ((i & 1) * (len >> 1));
  39. DFT(f, len, 1), DFT(g, len, 1), DFT(b, len, 1);
  40. for (int i = 0; i < len; ++i) f[i] = f[i] * b[i], g[i] = g[i] * b[i];
  41. DFT(f, len, -1), DFT(g, len, -1);
  42. for (int i = 1; i <= n; ++i) printf("%.3f\n", f[i].x - g[n - i + 1].x);
  43. }

「ZJOI2014」力 FFT的更多相关文章

  1. 「洛谷3338」「ZJOI2014」力【FFT】

    题目链接 [BZOJ] [洛谷] 题解 首先我们需要对这个式子进行化简,否则对着这么大一坨东西只能暴力... \[F_i=\sum_{j<i} \frac{q_iq_j}{(i-j)^2}-\s ...

  2. 「ZJOI2014」星系调查

    「ZJOI2014」星系调查 本题核心在于快速求XPs 的线性假设相斥度. 点\((x1,y1)\)到直线\(y=kx+b\)的距离的平方为\(\displaystyle {(kx1+b-y1)^2} ...

  3. 「ZJOI2014」璀灿光华

    「ZJOI2014」璀灿光华 实际上,可以不用建水晶立方体... 因为,发光水晶的方向都要枚举一遍. 只需知道发光水晶每个方向有哪些水晶就可以了. 对于一个发光水晶,将它连接的水晶标号. 从该水晶bf ...

  4. [ZJOI2014][bzoj3527]力 [FFT]

    题面 传送门 思路 把要求的公式列出来: $E_i=\frac{F_i}{q_i}=\sum_{j=1}^i\frac{q_j}{\left(i-j\right)^2}-\sum_{j=i+1}^n\ ...

  5. 【BZOJ】3527: [Zjoi2014]力 FFT

    [参考]「ZJOI2014」力 - FFT by menci [算法]FFT处理卷积 [题解]将式子代入后,化为Ej=Aj-Bj. Aj=Σqi*[1/(i-j)^2],i=1~j-1. 令f(i)= ...

  6. bzoj3527: [Zjoi2014]力 fft

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

  7. Note -「多项式」基础模板(FFT/NTT/多模 NTT)光速入门

      进阶篇戳这里. 目录 何为「多项式」 基本概念 系数表示法 & 点值表示法 傅里叶(Fourier)变换 概述 前置知识 - 复数 单位根 快速傅里叶正变换(FFT) 快速傅里叶逆变换(I ...

  8. 「2014-5-31」Z-Stack - Modification of Zigbee Device Object for better network access management

    写一份赏心悦目的工程文档,是很困难的事情.若想写得完善,不仅得用对工具(use the right tools),注重文笔,还得投入大把时间,真心是一件难度颇高的事情.但,若是真写好了,也是善莫大焉: ...

  9. Loj 3058. 「HNOI2019」白兔之舞

    Loj 3058. 「HNOI2019」白兔之舞 题目描述 有一张顶点数为 \((L+1)\times n\) 的有向图.这张图的每个顶点由一个二元组 \((u,v)\) 表示 \((0\le u\l ...

随机推荐

  1. Linux精简版系统安装网络配置问题解决

    参考文档:https://www.jianshu.com/p/7579a2ad1c92 通过链接中的文档配置linux系统的时候,在执行命令yum install net-tools的这里提示错误,是 ...

  2. 编写并提取通用 ShellCode

    简易 ShellCode 虽然可以正常被执行,但是还存在很多的问题,因为上次所编写的 ShellCode 采用了硬编址的方式来调用相应API函数的,那么就会存在一个很大的缺陷,如果操作系统的版本不统一 ...

  3. Codeforces 1245 E. Hyakugoku and Ladders

    传送门 显然这个图是个 $DAG$ ,那么就可以考虑跑 $dp$ 了 先考虑没有梯子的情况,首先把每个位置标号,越后面的位置编号越小,终点位置编号为 $1$ 那么从终点往起点 $dp$ ,枚举当前位置 ...

  4. AtCoder练习

    1. 3721 Smuggling Marbles 大意: 给定$n+1$节点树, $0$为根节点, 初始在一些节点放一个石子, 然后按顺序进行如下操作. 若$0$节点有石子, 则移入盒子 所有石子移 ...

  5. 面试经典算法:马拉松算法,最长回文子串Golang实现

    求一个字符串中最长的回文子串. package main import "fmt" /* 马拉松算法,求最长回文子串,时间复杂度:线性 */ func main() { // 回文 ...

  6. (十五)struts2之注解

    一.作用 以用来替换struts.xml配置文件 使用前提 :必须引入struts2-convention-plugin-2.3.14.jar 这个jar包 二.参数 @Action来代替<ac ...

  7. 洛谷 P1047 校门外的树(待完善)

    链接:https://www.luogu.org/problemnew/show/P1047 题目: 题目描述 某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是11米.我们可以把马路看 ...

  8. 二级菜单被banner遮住的解决方法

    原因:z-index的问题 解决:在导航box加  position: relative; z-index: 4; 比banner 大就可以.然后在一级导航的 li 设置 相对定位   positio ...

  9. iOS7 新后台及下载SDK介绍

    在iOS7以前的系统中,App默认是不能后台运行的,如果要后台运行,可以采用以下两类方法: (1)使用beginBackgroundTaskWithExpirationHandler函数,向系统申请一 ...

  10. SpringCloud各个组件通俗解析

    https://www.cnblogs.com/lonelyJay/p/9936241.html