根据题意,容易想到如果 wiwjw_i\le w_jliljl_i\le l_j 那么就可以把 ii 合并到 jj 中,也就是把 i,ji,j 强制一起选。

之后按照 ll 递增排序,容易证明选择为 11 组的肯定都是一个区间内的,那么容易想到动态规划。

fif_i 表示处理了前 ii 个之后的最小代价,那么有转移方程:

fi=minj=0i1fj+wj+1×lif_i=\min\limits_{j=0}^{i-1} f_{j}+w_{j+1}\times l_i

直接求解时间复杂度为 O(n2)O(n^2) 但是洛谷上直接过了,发现是乘积形式,考虑直接使用斜率优化。

ww 是单调减的,所以维护上凸包,在末尾加入元素,满足斜率递增。

lil_i 是递增的,期额寻找的是比 lil_i 大的最小的斜率,所以比 lil_i 小的都没有用。

时间负载为 O(nlogn)O(n\log n),但是瓶颈是排序。