1D1D动态规划
指状态数为 O ( n ) O(n) O(n),每个状态的决策数为 O ( n ) O(n) O(n),直接求解的复杂度为 O ( n 2 ) O(n^2) O(n2)的动态规划方程 d p [ i ] = m i n / m a x { d p [ j ] + S [ i , j ] } dp[i] = min/max \{dp[j] + S[i, j]\} dp[i]=min/max{
dp[j]+S[i,j]}。
斜率优化
斜率优化是1D1D的一种常见优化方式,一般的套路是先写出 d p dp dp方程,然后对于考虑 i i i之前的某个决策 j j j和 k k k,假设 k k k决策优于 j j j决策时,能对应得到一个不等式,满足这个不等式就表示 k k k决策是优于 j j j决策的,并且此时惊奇的发现可以把决策看做平面上的点,不等式也就转化成了斜率的比较。
此时 i i i之前的最优决策点一定是在上/下凸壳上。
具体实例
对于斜率式,设 k > j k > j k>j且 k k k和 j j j都是i的前置状态, 满足 y k − y j x k −