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…
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…
[参考]「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}…
题目: 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)) 先看减号前…
题目链接: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…
http://www.lydsy.com/JudgeOnline/problem.php?id=3527 (题目链接) 题意 $${F_i=\sum_{j<i} {\frac{q_iq_j}{(i-j)^2}}   -   \sum{j>i} {\frac{q_iq_j}{(i-j)^2}}}$$ 给出${q_i}$求${E_i=F_i/q_i}$ Solution 这能一眼秒是卷积w(゚Д゚)w,我怎么完全看不出来,这太强了吧.. 两边同时约掉一个${q_i}$,式子就变的和谐了很多:$${…
我们看一下这个函数,很容易就把他化为 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了 最近发现自…
题面 题解: \[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…