极值之和(二) 分治,然后推式子
题意:给定序列 \(a[i]\),求:
\[ANS=\sum_{1\le l\le r\le n}((r-l+1)\cdot \min_{j\in [l,r]}a[j] \cdot \max_{j\in [l,r]}a[j])
\]
对于区间 \([L,R]\) 中的答案,分治算出 \([L,mid],[mid+1,R]\) 的答案,然后只要计算 \(x\in [L,mid] , y\in [mid+1,R]\) 的答案即可。枚举左端点 \(x\),此时左边的 \(\min\) 和 \(\max\) 都已经确定。我们考虑最终的 \(\min,\max\) 由谁掌控。于是右边区间会分成三段,从左到右分别满足 \(\min,\max\) 都由左边掌控,一个由左边掌控,和都由右边掌控。容易发现所有东西都可以用前缀和优化,维护一坨东西式子推清楚就行了。
为什么能想到分治呢?可能是因为贡献是区间的形式;也可能是因为式子里面是区间 \(\min,\max\) 的形式,所以合并的时候可以有一些性质。

浙公网安备 33010602011771号