其他分享
首页 > 其他分享> > 凸壳优化dp/spole trick

凸壳优化dp/spole trick

作者:互联网

写给自己的一点复习与总结

(主要是今天高强度盯着东西罚坐以及晚上和d*h battle了很久,所以来写点东西)

(话说,最近用onenote记东西习惯了,一下子有点不适应)

spole trick

当一些dp直接进行复杂度不可接受的时候,如果这个dp的斜率都是单调递增(或递减的),并且都是整数,那么我们可以考虑这么优化

如果我们将某个函数 g ( x ) g(x) g(x) 的所有斜率改变1的点维护下来,(如果在某个点 x x x 斜率的变化大于1,那么这个位置要记录多次),那么我们就维护出来了这个函数

那么问题是? 我们怎么求想要的函数值呢?

对于最小值dp问题来说,斜率最接近0的部分,应该就是所求答案。

对于函数图像,我们可以这么理解,斜率为0的一段上的dp值都相同(但我们此时还不知道是多少),因此,在所有能给这一段上的点更新答案的位置,使得更新出来的答案最小的,就是我们想要找的点(同时,因为要使得答案在最小范围内,用于更新答案的位置应该在这段上)

标签:trick,函数,spole,斜率,答案,凸壳,dp
来源: https://blog.csdn.net/m0_50170681/article/details/121984732