求
\[E_j=\dfrac{F_j}{q_j} \]原式变成
\[\dfrac{\sum_{i=1}^{j-1}\dfrac{q_i\times q_j}{\left(i-j\right)^2}-\sum_{i=j+1}^n\dfrac{q_i\times q_j}{\left(i-j\right)^2}}{q_j} \]消去 \(q_j\)
\[\sum_{i=1}^{j-1}\dfrac{q_i}{\left(i-j\right)^2}-\sum_{i=j+1}^n\dfrac{q_i}{\left(i-j\right)^2} \]设 \(g_i=\dfrac{1}{i^2}\)
\[\sum_{i=1}^{j-1}q_i\times g_{j-i}-\sum_{i=j+1}^n q_i\times g_{i-j} \]令 \(g_0=q_0=0\),前半部分变成加法卷积的形式
\[\sum_{i=0}^{j}q_i\times g_{j-i} \]后半部分将下标全部翻转(\(i\) 变成 \(n-i\))就和前半部分一模一样了。
用 FFT 加速,时间复杂度 \(O\left(n\log n\right)\)。
可以学到的技巧:
- 寻找和固定的下标。
- 翻转下标,即反着做。