码迷,mamicode.com
首页 > 其他好文 > 详细

[ZJOI2014] 力 题解

时间:2019-02-04 12:46:06      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:zjoi   序列   ...   形式   不难   .net   就会   题解   做了   

题意:
技术图片


发现Ei如果给出了Fi就很好算,所以目标其实是算Fi.
首先我们令\(F_j=A_j-B_j\).
其中\[A_j=\sum_{i<j}\frac{q_iq_j}{(i-j)^2}.\]
\[B_j=\sum_{i>j}\frac{q_iq_j}{(i-j)^2}.\]
考虑将第一个式子变形为
\[A_j=\sum_{i=0}^{j-1}\frac{q_iq_j}{(i-j)^2}.\]
由乘法分配律,可以将\(q_j\)单拎出来,得:
\[A_j=q_j\times \sum_{i=0}^{j-1}\frac{q_i}{(i-j)^2}.\]
由于\((i-j)^2=(j-i)^2\),所以考虑这样一个函数:
\[g(x)=\frac{1}{x^2}.\]
然后就会发现可以把
\[\frac{q_i}{(i-j)^2}\]
变形为
\[q_ig(j-i).\]
带回原式,得到:\[A_j=q_j\times \sum_{i=0}^{j-1}q_ig(j-i).\]
不难发现后面的那坨东西类似于多项式乘法,但是少了一项,可以手动将\(g(0)=0\).
然后...这就是个多项式乘法的典型形式!可以用\(\text{FFT}\)解决!
同理也可以化简\(B_j\).
\[B_j=\sum_{i=j+1}^{n-1} \frac{q_iq_j}{(i-j)^2} \]
\[B_j=q_j\sum_{i=j+1}^{n} \frac{q_i}{(i-j)^2} \]
然后突然发现...这东西和\(A_j\)的计算方法不大一样!咋整?
瞬间考虑->反转q序列!变成\[\sum_{i=0}^{j-1}\frac{q‘_i}{(i-j)^2}.\]
然后把这个式子搞一下,变成\[\sum_{i=0}^{j-1}q‘_ig(j-i)\]
发现这个式子本质上就是\(A_j\),就能做了。

[ZJOI2014] 力 题解

标签:zjoi   序列   ...   形式   不难   .net   就会   题解   做了   

原文地址:https://www.cnblogs.com/LiM-817/p/10351574.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!