第一类 :决策单调性优化,根据对于一类dp:
j<k时有dp[j]转移点<=dp[k]转移点,
利用单调队列维护转移对应区间。
第二类 : 单调队列优化。
第三类: f(x) = min( a(x) * c(i) + b(x) * d(i) )
若决策点(转移点)为k
f(x) = a(x) * c(k) + b(x) * d(k)
d(k) = - a(x) / b(x) * c(k) + f(x) / b(x)
令 - a(x) / b(x) = A
d(k) = A * c(k) + f(x) / b(x)
把d(k)看做Y,c(k)看做X,f(x) / b(x) 就是这个直线的纵截距。
f(x) / b(x) 要尽可能小。
相当于一条斜率为A的直线L,平面上有许多点(c(i),d(i)),L要过至少一个点,且纵截距最小。
求平面点集的凸包再利用斜率求转移点。