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)\)。

浙公网安备 33010602011771号