BZOJ3527[Zjoi2014]力——FFT】的更多相关文章

bzoj3527: [Zjoi2014]力 fft 链接 bzoj 思路 但是我们求得是 \(\sum\limits _{i<j} \frac{q_i}{(i-j)^2}-\sum_{i>j}\frac{q_i}{(i-j)^2}\) \(\sum\limits _{i<j} \frac{q_i}{(i-j)^2}\) \(\sum\limits _{i=1}^{j-1} q_i*\frac{1}{(j-i)^2}\) fft都能算出来 \(\sum\limits _{i=j+1}^{n…
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3527 首先卷积的形式是$h(i)=\sum_{i=0}^jf(i)g(i-j)$,如果我们可以把式子整理成这个样子再套上FFT就成功了. $$E_i=\sum_{j<i}\frac{q_j}{(j-i)^2}-\sum_{j>i}\frac{q_j}{(i-j)^2}$$ $$E_i=\sum_{j=0}^{i-1}\frac{q_j}{(j-i)^2}^2-\sum_{j=0}^{n…
题目描述 给出n个数qi,给出Fj的定义如下: 令Ei=Fi/qi,求Ei. 输入 第一行一个整数n. 接下来n行每行输入一个数,第i行表示qi. n≤100000,0<qi<1000000000 输出 n行,第i行输出Ei.与标准答案误差不超过1e-2即可. 样例输入 5 4006373.885184 15375036.435759 1717456.469144 8514941.004912 1410681.345880 样例输出 -16838672.693 3439.793 7509018…
力 bzoj-3527 Zjoi-2014 题目大意:给定长度为$n$的$q$序列,定义$F_i=\sum\limits_{i<j}\frac{q_iq_j}{(i-j)^2}-\sum\limits_{i>j}\frac{q_iq_j}{(i-j)^2}$.求所有的$E_i=\frac{F_i}{q_i}$. 注释:$1\le n\le 10^5$,$0\le q\le 10^9$. 想法:我们可以把$F_i$中每一项上的$q_i$删掉因为我们求得$E_i$除掉了. 进而我们考虑如何求解$F…
3527: [Zjoi2014]力 Time Limit: 30 Sec  Memory Limit: 256 MBSec  Special JudgeSubmit: 1544  Solved: 899[Submit][Status][Discuss] Description 给出n个数qi,给出Fj的定义如下: 令Ei=Fi/qi,求Ei.   Input 第一行一个整数n. 接下来n行每行输入一个数,第i行表示qi. n≤100000,0<qi<1000000000     Output…
[参考]「ZJOI2014」力 - FFT by menci [算法]FFT处理卷积 [题解]将式子代入后,化为Ej=Aj-Bj. Aj=Σqi*[1/(i-j)^2],i=1~j-1. 令f(i)=qi,g(i)=1/i^2,定义f(0)=g(0)=0(方便卷积). Aj=Σf(i)*g(j-i),i=0~j-1,标准的卷积形式. 而对于Bj,将g反转后就是和为i+n-1的标准卷积形式了. 第一次FFT后,记得对a数组后半部分清零后再进行第二次FFT. 复杂度O(n log n). #incl…
题目 P3338 [ZJOI2014]力 做法 普通卷积形式为:\(c_k=\sum\limits_{i=1}^ka_ib_{k-i}\) 其实一般我们都是用\(i=0\)开始的,但这题比较特殊,忽略那部分,其他的直接按下标存下来,反正最后的答案是不变的 好了步入正题吧,我们定义 \[F_j=\sum\limits_{i<j}\dfrac{q_iq_j}{(i-j)^2}-\sum\limits_{i<j}\dfrac{q_iq_j}{(i-j)^2}\] 求\(E_i=\dfrac{F_i}…
2016-06-01  21:36:44 题目:http://www.lydsy.com/JudgeOnline/problem.php?id=3527 我就是一个大傻叉 微笑脸 #include<bits/stdc++.h> #define inf 1000000000 #define ll long long #define N 500005 using namespace std; int read(){ ,f=;char ch=getchar(); ;ch=getchar();} +c…
先写个简要题解:本来去桂林前就想速成一下FFT的,结果一直没有速成成功,然后这几天断断续续看了下,感觉可以写一个简单一点的题了,于是就拿这个题来写,之前式子看着别人的题解都不太推的对,然后早上6点多推了一个多小时终于发现了一个很巧妙的方法,首先问题的关键在于后半个式子,因为显然前半个式子很容易想到卷积的形式,那么直接FFT就好了,但是后半部分不好考虑,一般肯定是通过类似换元的做法化到后来得出结论,到中间有一步就有点难度,那个地方我一直卡.后来突然想到,既然前半部分i<j时那么好处理,那么i>j…
传送门 fftfftfft菜题. 题意简述:给一个数列aia_iai​,对于i=1→ni=1\rightarrow ni=1→n求出ansi=∑i<jai(i−j)2−∑i>jai(i−j)2ans_i=\sum_{i<j}\frac{a_i}{(i-j)^2}-\sum_{i>j}\frac{a_i}{(i-j)^2}ansi​=∑i<j​(i−j)2ai​​−∑i>j​(i−j)2ai​​ 思路: 考虑分开求减号前后的两组和. 前面的直接是一个卷积的形式,后面的可以…
题目 给出n个数qi,给出Fj的定义如下: 令Ei=Fi/qi,求Ei. 输入格式 第一行一个整数n. 接下来n行每行输入一个数,第i行表示qi. 输出格式 n行,第i行输出Ei.与标准答案误差不超过1e-2即可. 输入样例 5 4006373.885184 15375036.435759 1717456.469144 8514941.004912 1410681.345880 输出样例 -16838672.693 3439.793 7509018.566 4595686.886 1090304…
分析 整理得下式: \[E_i=\sum_{j<i}{\frac{q_i}{(i-j)^2}}-\sum_{j>i}{\frac{q_i}{(i-j)^2}}\] 假设\(n=5\),考虑这两个数组: \(a:q_1 \quad q_2 \quad q_3 \quad q_4 \quad q_5\) \(b:-\frac{1}{16} \quad -\frac{1}{9} \quad -\frac{1}{4} \quad -\frac{1}{1} \quad 0 \quad \frac{1}{…
#include <iostream> #include <cstdio> #include <cstring> #include <cmath> #include <algorithm> using namespace std; ; ); struct node{ double real,imag; ;} node operator +(const node &x){return (node){real+x.real,imag+x.im…
我们看一下这个函数,很容易就把他化为 E=sigma(aj/(i-j)/(i-j))(i>j)-sigma(aj/(i-j)/(i-j))(j>i) 把它拆成两半,可以发现分子与分母下标相加总为i 也就是说,例如左边, 可以表示成g(x)= f(i)*F(x-i) (i<x) 也就是卷积了 可以轻易的构造出 f(i)= ai F(i)=1/i/i FFT就行了 右边的话,吧f(i)给倒过来就行了 (f(i)=an-i) 最后的答案 ansi=g(i)-G(n-i-1) ok了 最近发现自…
http://www.lydsy.com/JudgeOnline/problem.php?id=3527 给出n个数qi,给出Fj的定义如下: 令Ei=Fi/qi,求Ei.      以n=4为例: 设数组a[],b[] 令c[]=a[]反转 y[]=c[]*b[] 那么E[i]=x[i]-y[n-i-1] #include<cmath> #include<cstdio> #include<algorithm> using namespace std; #define…
题面 题解: \[F_j = \sum_{i < j}\frac{q_iq_j}{(i - j)^2} - \sum_{i > j}{\frac{q_iq_j}{(i - j)^2}}\] \[E_j = \sum_{i < j}\frac{q_i}{(i - j)^2} - \sum_{i > j}{\frac{q_i}{(i - j)^2}}\] 对式子的2个部分分别计算. 令\(S_i = i^2\) \[\sum_{i < j}\frac{q_i}{(i - j)^2…
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3527 把 q[ i ] 除掉.设 g[ i ] = i^2 ,有一半的式子就变成卷积了:另一半只要翻转一下序列就也变成卷积了. g[ i ] 那个部分FFT过一次之后就不用再FFT了. 注意别在主函数里把全局变量的 len 覆盖了. #include<iostream> #include<cstdio> #include<cstring> #include<…
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3527 看了看TJ才推出来式子,还是不够熟练啊: TJ:https://blog.csdn.net/qq_33929112/article/details/54590319 然后竟然想愚蠢地做 n 遍 FFT 呵呵...其实做一遍就够了,得到的数组的角标就是上限. 代码如下: #include<iostream> #include<cstdio> #include<cst…
[题目分析] FFT,构造数列进行卷积,挺裸的一道题目诶. 还是写起来并不顺手,再练. [代码] #include <cmath> #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; #define F(i,j,k) for (int i=j;i<=k;++i) #define D(i,j,k)…
题目描述 给出\(n\)个数\(q_i\),给出\(F_j\)的定义如下: \(F_j = \sum_{i<j}\frac{q_i q_j}{(i-j)^2 }-\sum_{i>j}\frac{q_i q_j}{(i-j)^2 }\) 令\(E_i=F_i/q_i\),求\(E_i\). 输入输出格式 输入格式: 第一行一个整数n. 接下来n行每行输入一个数,第i行表示qi. 输出格式: n行,第i行输出Ei. 与标准答案误差不超过1e-2即可. 输入输出样例 输入样例#1: 复制 5 400…
题目大意: https://www.luogu.org/problemnew/show/P3338 题解 #include <bits/stdc++.h> #define N 300005 #define PI acos(-1.0) using namespace std; struct cpx { double x,y; cpx (double a=0.0,double b=0.0) { x=a; y=b; } cpx operator - (const cpx &b)const {…
题目: BZOJ3527 分析: FFT应用第一题-- 首先很明显能把\(F_j\)约掉,变成: \[E_j=\sum _{i<j} \frac{q_i}{(i-j)^2}-\sum_{i>j}\frac{q_i}{(i-j)^2}\] 然后去膜拜题解,我们知道两个多项式相乘的方式如下: \[C_j=\sum_{i=0}^j A_iB_{j-i}\] 那么,如果把\(E_j\)的表达式化成上面那个形式,就可以用FFT计算了.(不会FFT?戳我:[知识总结]快速傅里叶变换(FFT)) 先看减号前…
[BZOJ3527]力(FFT) 题面 Description 给出n个数qi,给出Fj的定义如下: \[Fj=\sum_{i<j}\frac{q_i q_j}{(i-j)^2 }-\sum_{i>j}\frac{q_i q_j}{(i-j)^2 }\] 令\(Ei=Fi/qi\),求\(Ei\). Input 第一行一个整数n. 接下来n行每行输入一个数,第i行表示qi. n≤100000,0<qi<1000000000 Output n行,第i行输出Ei.与标准答案误差不超过1…
3527: [Zjoi2014]力 Time Limit: 30 Sec  Memory Limit: 256 MBSec  Special JudgeSubmit: 2003  Solved: 1196 Description 给出n个数qi,给出Fj的定义如下: 令Ei=Fi/qi,求Ei. Input 第一行一个整数n. 接下来n行每行输入一个数,第i行表示qi. n≤100000,0<qi<1000000000 Output n行,第i行输出Ei.与标准答案误差不超过1e-2即可. S…
题面 传送门: 洛咕 BZOJ Solution 写到脑壳疼,我好菜啊 我们来颓柿子吧 \(F_j=\sum_{i<j}\frac{q_i*q_j}{(i-j)^2}-\sum_{i>j}\frac{q_i*q_j}{(i-j)^2}\) \(q_j\)与\(i\)没有半毛钱关系,提到外面去 \(F_j=q_j*\sum_{i<j}\frac{q_i}{(i-j)^2}-q_j*\sum_{i>j}\frac{q_i}{(i-j)^2}\) 左右同时除以\(q_j\) \(E_j=…
[ZJOI3527][Zjoi2014]力 试题描述 给出n个数qi,给出Fj的定义如下: 令Ei=Fi/qi.试求Ei. 输入 包含一个整数n,接下来n行每行输入一个数,第i行表示qi. 输出 有n行,第i行输出Ei.与标准答案误差不超过1e-2即可. 输入示例 4006373.885184 15375036.435759 1717456.469144 8514941.004912 1410681.345880 输出示例 -16838672.693 3439.793 7509018.566 4…
P3338 [ZJOI2014]力 题目描述 给出n个数qi,给出Fj的定义如下: \(F_j = \sum_{i<j}\frac{q_i q_j}{(i-j)^2 }-\sum_{i>j}\frac{q_i q_j}{(i-j)^2 }\) 令\(E_i=\frac{F_i}{q_i}\),求\(E_i\). 输入输出格式 输入格式: 第一行一个整数\(n\). 接下来\(n\)行每行输入一个数,第\(i\)行表示\(q_i\). 输出格式: \(n\)行,第\(i\)行输出\(E_i\).…
洛谷题目链接:P3338 [ZJOI2014]力 题目描述 给出n个数qi,给出Fj的定义如下: \[F_j = \sum_{i<j}\frac{q_i q_j}{(i-j)^2 }-\sum_{i>j}\frac{q_i q_j}{(i-j)^2 }\] 令Ei=Fi/qi,求Ei. 输入输出格式 输入格式: 第一行一个整数n. 接下来n行每行输入一个数,第i行表示qi. 输出格式: n行,第i行输出Ei. 与标准答案误差不超过1e-2即可. 输入输出样例 输入样例#1: 5 4006373…
[ZJOI2014]力 \[\begin{split} E_j=&\sum_{i=1}^{j-1}\frac{q_i}{(i-j)^2}-\sum_{i=j+1}^{n}\frac{q_i}{(i-j)^2}\\ =&\sum_{i=1}^{j}\frac{q_i}{(i-j)^2}-\sum_{i=j}^{n}\frac{q_i}{(i-j)^2}\\ \end{split}\\ \begin{cases} f_i=q_i\\ g_i=\frac 1{i^2}\\ \end{cases}…
题面 Bzoj Luogu 题解 先来颓柿子 $$ F_i=\sum_{j<i}\frac{q_iq_j}{(i-j)^2}-\sum_{j>i}\frac{q_iq_j}{(i-j)^2} \\=q_i(\sum_{j<i}\frac{q_j}{(i-j)^2}-\sum_{j>i}\frac{q_j}{(i-j)^2}) $$ 所以 $$ E_i=\sum_{j<i}\frac{q_j}{(i-j)^2}-\sum_{j>i}\frac{q_j}{(j-i)^2}…