题目

给出n个数qi,给出Fj的定义如下:

令Ei=Fi/qi,求Ei.

思路

年轻人的第一道FFT。
\[ E_j=\sum_{i<j}\frac{q_i}{(i-j)^2}-\sum_{i>j}\frac{q_i}{(i-j)^2} \]
设:
\[ f[i]=q_i\\ g[i]=\frac{1}{i^2} \]
那么原式可以化为:
\[ E_j=\sum_{i<j}f[i]g[j-i]-\sum_{i>j}f[i]g[i-j] \]
也就是:
\[ E_j=\sum_{i=0}^{j-1}f[i]g[j-i]-\sum_{i=j+1}^{n}f[i]g[i-j] \]
前半部分是卷积的形式,显然可以用FFT维护,重点是后面的部分。

我们来变一下形:
\[ \sum_{i=j+1}^{n}f[i]g[i-j]\\ 令i=i-j\\ \sum_{i=0}^{n-j}f[i+j]g[i] \]
然后将\(i+j+i\)凑成\(n-j\),也就是令\(f'[n-j-i]=f[i+j]\)

再简单变形:\(f'[i]=f[n-i]\)

于是\(f'[]\)也构造出来了,这样两边都化为了卷积的形式,就可以用FFT求解了。

代码

#include<bits/stdc++.h>
#define M 400005
using namespace std;
int n;
struct Complex{double x,y;Complex(){}Complex(double _x,double _y):x(_x),y(_y){}Complex operator + (const Complex &res) const{return (Complex){x+res.x,y+res.y};  }Complex operator - (const Complex &res) const{return (Complex){x-res.x,y-res.y};  }Complex operator * (const Complex &res) const{return (Complex){x*res.x-y*res.y,x*res.y+y*res.x};  }
};
Complex A[M],B[M];
double pi=acos(-1.0);
void FFT(Complex *y,int n,int f){if(n==1)return;Complex L[n>>1],R[n>>1];for(int i=0;i<n;i+=2)L[i>>1]=y[i],R[i>>1]=y[i+1];FFT(L,n>>1,f);FFT(R,n>>1,f);Complex wn(cos(2*pi/n),f*sin(2*pi/n)),w(1,0);for(int i=0;i<(n>>1);i++,w=w*wn){y[i]=L[i]+w*R[i];y[i+(n>>1)]=L[i]-w*R[i];}
}
double q[M],b[M],C[M];
int main(){cin>>n;n--;for(int i=0;i<=n;i++)scanf("%lf",&q[i]);for(int i=0;i<=n;i++)A[i]=(Complex){q[i],0};for(int i=1;i<=n;i++){b[i]=1.0/i/i;B[i]=Complex(b[i],0);}int nn=n,mm=n;mm+=nn;for(nn=1;nn<=mm;nn<<=1);FFT(A,nn,1);FFT(B,nn,1);for(int i=0;i<=nn;i++)A[i]=A[i]*B[i];FFT(A,nn,-1);for(int i=0;i<=n;i++)C[i]=A[i].x/nn;for(int i=0;i<=nn;i++)A[i]=B[i]=Complex(0,0);for(int i=0;i<=n;i++)A[i]=Complex(q[n-i],0);for(int i=1;i<=n;i++)B[i]=Complex(b[i],0);FFT(A,nn,1);FFT(B,nn,1);for(int i=0;i<=nn;i++)A[i]=A[i]*B[i];FFT(A,nn,-1);for(int i=0;i<=n;i++)C[i]-=A[n-i].x/nn;for(int i=0;i<=n;i++)printf("%.3f\n",C[i]);return 0;
}

转载于:https://www.cnblogs.com/zryabc/p/10492207.html

BZOJ3527 力相关推荐

  1. BZOJ3527: [Zjoi2014]力

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

  2. [bzoj3527][Zjoi2014]力

    来自FallDream的博客,未经允许,请勿转载,谢谢. 给定n(n<=100000)个数qi 求Ei=Fi/qi 题解:首先约去所有的qi,然后就是一个卷积了,Ai=qi,Bi=1/i^2搞一 ...

  3. 【BZOJ3527】【ZJOI2014】力

    "FFT还不是随手写?"我终于能说这样的话了இwஇ 原题: 给出n个数qi,给出Fj的定义如下: 令Ei=Fi/qi,求Ei. FFT嘛,直接推公式 然后就变成俩卷积了,FFT即可 ...

  4. BZOJ3527:[ZJOI2014]力(FFT)

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

  5. BZOJ3527: [Zjoi2014]力 [FFT]

    化简之后,发现减号左边的式子是一个卷积.右边的式子,把一个函数倒序就是卷积,分别FFT,求解答案. 大佬blog: https://blog.csdn.net/kyleyoung_ymj/articl ...

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

  7. bzoj3527【ZJOI2014】力

    题目大意: 给出n个数qi,定义 Fj为 令 Ei=Fi/qi,求Ei. 令a[i]=q[i],b[i]=1/(i^2),则E[i]=∑(1≤j≤i-1)a[j]*b[i-j]-∑(i+1≤j≤n)a ...

  8. 【BZOJ3527】【FFT】力

    [问题描述] 给出n个数qi,给出Fj的定义如下: 令Ei=Fi/qi.试求Ei. [输入格式] 输入文件force.in包含一个整数n,接下来n行每行输入一个数,第i行表示qi. [输出格式] 输出 ...

  9. 【ZJOI2014】【BZOJ3527】 力 (FFT)

    Description 给出序列 {qi} \{q_i\},求 Ei=∑j<iqj(i−j)2−∑j>iqj(i−j)2 E_i = \sum_{ji}\frac{q_j}{(i-j)^2 ...

最新文章

  1. Arduino 各种模块篇 光敏感应器 简易光敏
  2. 【分块答案】【最小割】bzoj1532 [POI2005]Kos-Dicing
  3. 2020年高等数学方法与提高(上海理工大学)学习笔记:无穷级数
  4. virtualbox linux 挂载u盘,Ubuntu 10.04 在Virtualbox 虚拟机上挂载U盘
  5. SUV 个人收藏汽车
  6. 使用ctime.h头文件来控制程序延时秒数
  7. CVPR 2020文本图像检测与识别论文/代码
  8. 五分钟带你玩转rabbitmq(八)【真实案例】消息消费失败如何处理?
  9. sqlserver中日期转字符串
  10. 预应力内力计算时作用机理(纠结好久的问题orz)
  11. php读取月日,PHP获取当前时间、年份、月份、日期和天数
  12. qq音乐网络异常获取音乐失败_QQ音乐怎么诊断网络异常
  13. ubuntu 18.04 解决网易云音乐图标不能打开的问题
  14. win7下电脑感染了病毒
  15. MYSQL窗口函数用法
  16. 2022跨境电商是宝还是坑-成都扬帆跨境电商
  17. python绘制箱线图
  18. java qt gui_GUI(图形界面)技术选型
  19. CSS3 @font-face实现颜色大小可控的三角效果——张鑫旭
  20. 省联社再下一城,陕西信合选择携手菊风共建远程银行服务平台

热门文章

  1. 阻止switch开关的事件冒泡
  2. 【Linux】Linux基础命令及英文全称
  3. 《那些年啊,那些事——一个程序员的奋斗史》——99
  4. 胜利大逃亡(BFS)
  5. 计算机 90学时培训总结,90学时培训心得体会
  6. 解决Lost connection to MySQL server during query错误方法
  7. Oracle的逻辑读和物理读
  8. 什么是消费者需求研究
  9. 手机像素与分辨率的关系
  10. 情人节有哪些礼物可以送给男朋友的,情人节送礼推荐