ARC070C NarrowRectangles
题意 : 有
现在可以上下移动这些木板,使得所有木板连接起来(有一点接触就算连接)。问最小的移动距离和。
先考虑
显然,需要考虑的
不难写出转移方程:
将
记
对于绝对值函数的处理,分三类讨论:
用两个堆分别维护左右侧的凸壳,每个元素代表一个斜率变化
记加绝对值之前的函数,最小值区间为
情况A:
最小值位置变为
。左侧斜率减一,右侧斜率加一,给左右两个堆各加入一个 。情况B:
查看
左侧的第一段斜率为 的区间,假设为 。则新的最小值区间为
。在左堆加入两个 ,因为斜率变化了两次。情况C:
情况类似,查看
右侧的第一段斜率为 的区间,假设为 。则新的最小值区间为
。在右堆加入两个 。
需要给堆维护一个整体加法标记。
还要考虑如何求解答案。记
情况A:最小值不变。
情况B:最小值加上
情况C:最小值加上
复杂度