BZOJ 3527: [Zjoi2014]力 FFT_卷积
Description

Input
Output
n行,第i行输出Ei。与标准答案误差不超过1e-2即可
题解:
#include <cmath>
#include <cctype>
#include <cstdio>
#include <cstring>
#include <string>
#include <algorithm>
using namespace std; #define setIO(s) freopen(s".in","r",stdin) const int maxn = 300000;
const double pi=3.1415926535898;
int t, n, len=1, l, r[maxn*2]; struct Cpx{
double x,y;
Cpx (double t1=0,double t2=0){x=t1,y=t2;}
}A[maxn<<1],B[maxn<<1],C[maxn<<1],B2[maxn<<1],A2[maxn<<1],C2[maxn]; Cpx operator+(Cpx a,Cpx b){ return Cpx(a.x+b.x,a.y+b.y);}
Cpx operator - (Cpx a, Cpx b){ return Cpx(a.x-b.x, a.y-b.y); }
Cpx operator * (Cpx a, Cpx b){ return Cpx(a.x*b.x-a.y*b.y, a.x*b.y+a.y*b.x); } void FFT(Cpx *a,int n,int flag){
for(int i=0;i<n;++i) if(i<r[i]) swap(a[i],a[r[i]]);
for(int mid=1;mid<n;mid<<=1){
Cpx wn(cos(pi/mid), flag*sin(pi/mid)),x,y;
for(int j=0;j<n;j+=(mid<<1)){
Cpx w(1,0);
for(int k=0;k<mid;++k) {
x=a[j+k],y=w*a[j+mid+k];
a[j+k]=x+y;
a[j+mid+k]=x-y;
w=w*wn;
}
}
}
}
int main(){
//setIO("input");
scanf("%d",&n);
for(int i = 1;i <= n; ++i) scanf("%lf",&A[i].x),A2[n - i + 1] = A[i].x;
for(int i = 1;i <= n; ++i) B[i].x = 1.000 / (double) ((1.0 * i) * (1.0 * i)) ;
while(len < n + n) len <<= 1,++l;
for(int i = 0;i < len; ++i) r[i] = (r[i >> 1] >> 1) | ((i & 1) << (l-1));
FFT(A,len,1),FFT(B,len,1),FFT(A2,len,1);
for(int i = 0;i < len ; ++i) C[i] = A[i] * B[i];
for(int i = 0;i < len ; ++i) C2[i] = A2[i] * B[i];
FFT(C,len,-1),FFT(C2,len,-1);
for(int i = 0;i < len; ++i) C2[i].x /= len,C[i].x /= len;
for(int i = 1;i <= n; ++i) printf("%.3f\n",C[i].x - C2[n - i + 1].x);
return 0;
}
BZOJ 3527: [Zjoi2014]力 FFT_卷积的更多相关文章
- 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)
我们看一下这个函数,很容易就把他化为 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 ...
- bzoj 3527 [Zjoi2014] 力 —— FFT
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3527 看了看TJ才推出来式子,还是不够熟练啊: TJ:https://blog.csdn.n ...
- BZOJ 3527 [Zjoi2014]力 ——FFT
[题目分析] FFT,构造数列进行卷积,挺裸的一道题目诶. 还是写起来并不顺手,再练. [代码] #include <cmath> #include <cstdio> #inc ...
随机推荐
- javase 异常处理
1.简述什么是异常.异常的继承体系? 异常就是java代码块在运行时出现的错误,有编译错误和运行错误, Throwable是所有异常的父类它包含了error和Exception两个子类. 其中e ...
- 移动端开发-Day1
什么是Node? 它是一个基于Chrome v8引擎的js运行环境,采用高效轻量级的事件驱动,非阻塞式的I/O模型. 非阻塞I/O? 例如,当程序运行到某一函数时,调用后立即返回,不需要等待函数执行完 ...
- bzoj 1293: [SCOI2009]生日礼物 问题转化 + 性质分析 + 滚动数组优化
Description 小西有一条很长的彩带,彩带上挂着各式各样的彩珠.已知彩珠有N个,分为K种.简单的说,可以将彩带考虑为x轴,每一个彩珠有一个对应的坐标(即位置).某些坐标上可以没有彩珠,但多个彩 ...
- JavaScript进阶【三】JavaScript面向对象的基础知识复习
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- nyoj256-C小加之级数求和
C小加 之 级数求和 时间限制:3000 ms | 内存限制:65535 KB 难度:2 描述 最近,C小加 又遇到难题了,正寻求你的帮助. 已知:Sn= 1+1/2+1/3+-+1/n. 显然对 ...
- 实战:一、使用mongo做一个注册的小demo
思路:1.使用mongoose 进行 数据库的链接 2.使用Schema来进行传输字段的定义 3.安装koa-router进行数据处理4.安装koa-bodyparser 进行post数据交互5.解决 ...
- 【Codeforces 469B】Chat Online
[链接] 我是链接,点我呀:) [题意] [题解] 因为你的朋友的时间是固定的. 你完全可以开一个tag[50]的数组,如果tag[i]=1说明i时刻你的基友在线(扫描基友的时间就能 得到 然后你在判 ...
- 【AIM Tech Round 5 (rated, Div. 1 + Div. 2) B】Unnatural Conditions
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 让a+b的和为100000000...0这样的形式就好了 这样s(a+b)=1<=m就肯定成立了(m>=1) 然后至于s ...
- 参数化取值策略Random
1.Random+Each iteration,跟顺序读取的结果唯一不同的就是这里是随机读取,取值是每次迭代取值 2.Random+Each occurrence,随机取值更新方式 3.R ...
- HDU2188 选拔志愿者
/* HDU2188 选拔志愿者 http://acm.hdu.edu.cn/showproblem.php?pid=2188 博弈论 巴什博奕 巴什博奕要注意n<=m时是必胜态 * * * * ...