P5498 [LnOI2019] 脸滚键盘

貌似是诈骗,不过难度不对标(。

期望不管,先求出 \(\sum_{i=l}^{r}\sum_{j=i}^r w(i,j)\),其中 \(w(i,j)=\prod_{k=i}^ja_k\)

\(ans(l,r)=\sum_{i=l}^r\sum_{j=l}^i w(j,i)\)

考虑维护 \(s_i=\sum_{j=1}^iw(j,i)\),此时 \(s_r-s_{l-1}\) 多出来的部分是 \(\sum_{i\in[l,r],j\in[1,l-1]} w(j,i)\),考虑怎么维护这一堆。

拆成 \(\sum_{i=1}^{l-1}w(i,l-1)\sum_{i=l}^r w(l,i)\)\(\sum_{i=1}^{l-1}w(i,l-1)\) 可以维护一个 \(f_i=\sum_{j=1}^i w(j,i)\)。而 \(\sum_{i=l}^r w(l,i)\) 再维护 \(g_i=\sum_{j=1}^i w(1,j)\),则后者为 \(\frac{g_r-g_{l-1}}{w(1,l-1)}\) 最后除一下子区间个数 \(\frac{(r-l)(r-l+1)}{2}+(r-l+1)\)

posted @ 2025-10-16 09:25  Uesugi1  阅读(8)  评论(0)    收藏  举报