斜率优化。解决一些动态规划的优化问题。可以做到O(n)。
当决策点和之前有关,又不知道取哪个的时候,优化方式有很多。单调队列,单调栈,但有时候这些不够用。比如说当方程跟之前的j又和现在的i有关,就会发生变化。因为不同的i会使选择决策不同,所以有时候不能像单调队列一样直接取判断。
根据摆渡车,我们发现大概长这样。
f(i)=f(j)+i的和j的相乘之类的+i的一坨+j的一坨。
我们将已知的j放到一坨,j和i一起的放到一坨,i的放到一坨
也就是:j的一坨=i*j的一坨+i的一坨+f(i)
约等于y=kx+b;
每个已知的状态表示成一个点(x,y),然后我们目标是得到最小的b。可以感性得到一个下凸壳,然后维护就行了。
主要是把方程划出来。当然可以换一种方式,直接假设i比j优秀然后得到一个分数也可以得到一个优美的k值。
例题先咕一段时间。摆渡车特别行动队啊什么的都可以