码迷,mamicode.com
首页 > 其他好文 > 详细

斜率优化DP

时间:2020-02-09 09:28:22      阅读:63      评论:0      收藏:0      [点我收藏+]

标签:article   情况   有关   去掉   无法   acm   优化   通过   使用   

现在是晚上零点三十分,我来写这篇文章,总结一下我今天学到的简单的斜率优化。

什么是斜率优化,就是将递推式写为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

标签:article   情况   有关   去掉   无法   acm   优化   通过   使用   

原文地址:https://www.cnblogs.com/syzf2222/p/12285944.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!