(草稿展示)构式题:P4458 [BJOI2018] 链上二次求和

这篇并非题解,相当于我的草稿本,但我觉得这太傻逼了所以我为了泄愤发了出来,如果想学习的最好不要看这个,记号太乱了。

考虑如何查询,设\(pre_i\)\(a_i\)的前缀和

\[\sum_{len=l}^{r}\sum_{i=len}^{n}(pre_i-pre_{i-len})\\ =\sum_{len=l}^{r}(\sum_{i=len}^{n}pre_i-\sum_{i=1}^{n-len}pre_{i}) \]

\(pre^2_i\)\(pre_i\)的前缀和

\[原式=(r-l+1)pre^2_n-\sum_{i=1}^{r-1}pre^2_{i}+\sum_{i=1}^{l-2}pre^2_{i}-\sum_{i=1}^{n-l}pre^2_{i}+\sum_{i=1}^{n-r-1}pre^2_{i} \]

我们需要在线段树上维护 \(pre^2_i\),再对其做区间和即可

\[pre^2_k=\sum_{i=1}^{k}\sum_{j=1}^{i}a_j=\sum_{i=1}^{k}(k-i+1)a_i=k\sum_{i=1}^{k}a_i-\sum_{i=1}^{k}ia_i+\sum_{i=1}^{k}a_i \]

三项都可维护,所以\((r-l+1)pre^2_n\)就做完了

再套一个求和呢?

\(f(n)=\sum_{i=1}^{n}pre^2_i\),则

\[f(n)=\sum_{k=1}^{n}\sum_{i=1}^{k}ka_i-\sum_{k=1}^{n}\sum_{i=1}^{k}ia_i+\sum_{k=1}^{n}\sum_{i=1}^{k}a_i \]

再套上面的式子

\[\sum_{k=1}^{n}\sum_{i=1}^{k}a_i=\sum_{i=1}^{n}(n-i+1)a_i=(n+1)\sum_{i=1}^{n}a_i-\sum_{i=1}^{n}ia_i\\ -\sum_{k=1}^{n}\sum_{i=1}^{k}ia_i=-(n+1)\sum_{i=1}^{n}ia_i+\sum_{i=1}^{n}i^2a_i\\ \sum_{k=1}^{n}\sum_{i=1}^{k}ka_i=\sum_{i=1}^{n}\frac{(n-i+1)(n+i)}{2}a_i=\frac{1}{2}\bigg((n^2+n)\sum_{i=1}^{n}a_i-\sum_{i=1}^{n}i^2a_i+\sum_{i=1}^{n}ia_i\bigg) \]

合并:

\[f(n)=\frac{1}{2}\bigg(\sum_{i=1}^{n}i^2a_i-(2n+3)\sum_{i=1}^{n}ia_i+(n^2+3n+2)\sum_{i=1}^{n}a_i\bigg) \]

然后询问的答案:

\[ans=(r-l+1)\bigg((n+1)\sum_{i=1}^{n}a_i-\sum_{i=1}^{n}ia_i\bigg)-f(r-1)+f(l-2)-f(n-l)+f(n-r-1) \]

然后我们就做完了这一坨勾石

posted @ 2026-07-31 17:55  司马只因锥  阅读(5)  评论(0)    收藏  举报