斜率优化DP
Posted syzf2222
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了斜率优化DP相关的知识,希望对你有一定的参考价值。
现在是晚上零点三十分,我来写这篇文章,总结一下我今天学到的简单的斜率优化。
什么是斜率优化,就是将递推式写为y=kx+b的形式。
假设原递推式长这样:f[i]=min{f[j]+C},其中C可能是一个关于i的函数,一个关于j的函数,一个关于i和j的函数。
前两种情况可以通过单调队列来解决,但是情况三中无法分离i和j,只能使用斜率优化。
y=kx+b,其中y=f(j),k=f(i),x=f(j),b=f(i)+const,其中f(x)代表与x有关的一个函数。
光说是空的,我们来具体分析。
例题一:HDU3507 Print Article
网址:http://acm.hdu.edu.cn/showproblem.php?pid=3507
不难得到递推式f[i]=min{f[j]+(sum[i]-sum[j])^2+m};
去掉min函数并展开:f[i]=f[j]+sum[i]^2-2*sum[i]*sum[j]+sum[j]^2+m
将含i的项与含j的项分离,并把单纯含j的项写在左边:f[j]+sum[j]^2=2*sum[i]*sum[j]+f[i]-sum[i]^2-m
未完
以上是关于斜率优化DP的主要内容,如果未能解决你的问题,请参考以下文章