数学(FFT):BZOJ 3527 [Zjoi2014]力】的更多相关文章

题目在这里:http://wenku.baidu.com/link?url=X4j8NM14MMYo8Q7uPE7-7GjO2_TXnMFA2azEbBh4pDf7HCENM3-hPEl4mzoe2wSoblrSOvMirfS7PsQ1OVjsdaCJhEaGNCpuUxFKoPvNvXa 裸的FFT,小心i*i爆int!!! #include <iostream> #include <cstring> #include <cstdio> #include <cm…
BZOJ 3527: [ZJOI2014]力(FFT) 题意: 给出\(n\)个数\(q_i\),给出\(Fj\)的定义如下: \[F_j=\sum \limits _ {i < j} \frac{q_iq_j}{(i-j)^2}-\sum \limits _{i >j} \frac{q_iq_j}{(i-j)^2}.\] 令\(E_i=F_i/q_i\),求\(E_i\). 题解: 一开始没发现求\(E_i\)... 其实题目还更容易想了... \[E_i=\sum\limits _{j&l…
题目: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…
我们看一下这个函数,很容易就把他化为 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了 最近发现自…
题目大意: 给出n个数\(q_i\)定义 \[f_i = \sum_{i<j}{\frac{q_iq_j}{(i-j)^2}} - \sum_{i>j}\frac{q_iq_j}{(i-j)^2}\] 设\(E_i = \frac{f_i}{q_i}\),求所有的\(E_i\) 题解: 我们把\(f_i\)代入\(E_i\)的表达式中,有 \[E_i = \sum_{i<j}{\frac{q_j}{(i-j)^2}} - \sum_{i>j}\frac{q_j}{(i-j)^2}\…
[题目分析] 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)…
大力推公式,目标是转成卷积形式:\( C_i=\sum_{j=1}^{i}a_jb_{i-j} \) 首先下标从0开始存,n-- \[ F_i=\frac{\sum_{j<i}\frac{q_jq_i}{(j-i)^2}-\sum_{j>i}\frac{q_jq_i}{(j-i)^2}}{q_i} \] \[ F_i=\sum_{j<i}\frac{q_j}{(j-i)^2}-\sum_{j>i}\frac{q_j}{(j-i)^2} \] 设 \[ a_i=\sum_{j<…
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}\) Sol FFT. 我们可以发现他是一个卷积的形式,每次从\(i^2\) 卷到 \((n-i-1)^2\) . 既然是卷积,那么直接FFT就好了,但是FFT是让指数相等,也就是这里面的下标相等,所以必须要翻转这两个数组其中一个就可以了,随便翻就行. 然后从某一个下下标位置开始输出. Code /…
题链: http://www.lydsy.com/JudgeOnline/problem.php?id=3527 题解: FFT求卷积. $$\begin{aligned}E_i&=\frac{F_i}{q_i}\\&=\sum_{k<i}\frac{q_k}{(i-k)^2}-\sum_{k>i}\frac{q_k}{(i-k)^2}\\&=\sum_{k=1}^{n}{q_kP(i-k)}\end{aligned}$$ 其中, $$P(x)=\begin{cases…