[ZJOI2014]力 解题报告

一个经典题。

Statement

给定 \(q_i\),求 \(\forall i \in [1,n]\)

\[\sum_{j=1}^{i-1}\frac{q_i\times q_j}{(i-j)^2} \times \frac{1}{q_i} - \sum_{j=i+1}^{n}\frac{q_i\times q_j}{(i-j)^2} \times \frac{1}{q_i} \]

\(n\le 10^5, q_i < 10^9\)

Analysis

一眼推式子题。
原式 \(=\sum\limits_{j=1}^{i-1}\frac{q_j}{(i-j)^2} - \sum\limits_{j=i+1}^{n}\frac{q_j}{(i-j)^2}\)
为书写方便,下文 \(i,j\) 互换。同时两个 \(\sum\) 都加一个 \(i=j\) 的部分,对答案没有影响。
式子就变成了 \(\sum\limits_{i=1}^{j}\frac{q_i}{(i-j)^2} - \sum\limits_{i=j}^{n}\frac{q_i}{(i-j)^2}\)
按照常规套路,看到多项式相乘首先应该想到卷积。
不妨假设 \(f_i=q_i,g_i=\frac{1}{i^2}\)
原式 \(=\sum\limits_{i=1}^{j}f_{i}g_{i-j}-\sum\limits_{i=j}^{n}f_{i}g_{i-j}\)
如果我们假设 \(f_0=0, g_0=0\),原式的前半部分可以变成 \(\sum\limits_{i=0}^{j}f_{i}g_{i-j}\),是一个标准的卷积式子。
接下来考虑右半边,同时减去一个 \(j\) 可得 \(\sum\limits_{i=0}^{n-j}f_{i+j}g{i}\)
我们需要卷积式子,那么 \(i+j\) 的形式在我们眼中是不优美的。事实上,我们需要一个 \((n-j)-i\),而根据观察,它恰好是 \(f\) 的翻转。于是我们引入 \(f'_i = f_{n-i}\),令 \(lim = n - j\),原式就变成了 \(\sum\limits_{i=0}^{lim}f'_{lim-i}g_i\),也成为了卷积式子。
于是本题完成,使用任何你喜欢的多项式做法均可通过本题

posted @ 2023-02-17 19:06  MisterRabbit  阅读(22)  评论(0)    收藏  举报