看黄源河左偏树的论文时找过去的,结果发现了个超级牛的解法 /se ,然后莫名其妙就变成了洛谷和 darkbzoj 的最优解了 /fad
先把 $a_i$ 全部减去一个 $i$ ,然后 $b_i$ 的限制就变成了不降序列了,最后输出加回来即可
然后可以列出一个非常 $\text{naive}$ 的 $\text{DP}$ :
设 $f_{i,j}$ 为转移到第 $i$ 个,当前的 $b_i$ 等于 $j$ 的最小代价
那么转移也很 $\text{naive}$ ,在此直接列出:
$f_{i,j}=|a_i-j| + $\min\limits_{k<=j} f_{i-1,k}$
将其改写为 $f_i(x)$ ,于是转移可以写成如下式子
$f_i(x)=|a_i-x| + \begin{cases} f_{i-1}(x) & x<L \\ f_{i-1}(L) & x \ge L \end{cases}$
很明显 $f_i(x)$ 又是一个经典的凸函数