bzoj4540

题意

(val_{l,r}=sumlimits_{i=l}^r sumlimits_{j=i}^r (min_{k=i}^j{a_k})),多次询问(val_{l,r})

做法一

莫队

考虑已经求得了([l,r))的答案,扩展到([l,r]),下面来算增量
(x)([l,r])最小值的位置,以([l,x])为左端点,(r)为右端点,这些区间最小值都为(a_x)

然后以((x,r])为左端点,以(r)为右端点(设(L[i])(i)左边最近的小于等于(i)的位置),可以这样求:
(S_r-S_x),其中(S_i=S_{L[i]}+a_i imes(i-L[i]))

原文地址:https://www.cnblogs.com/Grice/p/12482918.html