斜率优化总结&基础题表

前言

毕竟要给自己看,还是写好看点吧

其实就是把之前放在某题里的小结大致上转到了这里罢了= =

斜率优化就是dp的一种,当方程中出现二次项之类的用这个来试试搞搞??降复杂度啊。


正式小结orz

总结的话,会截距式这种就好了!十分好用!

首先,你要会写出dp方程!真的,zz的我有时连方程都写不出来QWQ

如果能把方程化成f[i]=a(i)*b(j)+c(j)+(一个只与i有关的常数)这个形式!就能用斜率优化来做了!

为什么呢?!因为写成这个形式后:

拆项合并移项,不用教啦这个就

[a(i)表示一个与i有关的数,b(j)、c(j)亦如此]

移项:-a[i]*b[j]+f[i]=c[j]有没有很像y=kx+b!

把-a[i]看为斜率,b[j]为x,c[j]为y,画一条直线 

而这样,就能通过维护f[i],找到使f[i]成立的最小/大值

斜率优化总结&基础题表_第1张图片

可以看出。答案f[i]就是直线与y轴的交点,即y轴上的截距

假如说题目要求求最小值,就是要截距f[i]最小。把之前的j(根据化出的式子)画点画在坐标系里,一如线性规划,把这条斜线自下往上平移时遇到的第一个点,即能使目前状态有最小值的点,那么显然需要维护一个下凸包啊,把那些肯定不会贡献的点删掉。(画图好麻烦..意会!)

最大值亦然。


题表

我做的都是在bzoj上(都是黄学长的题表里的hhh)的,而且都蛮基础。维护凸包都不用什么平衡树啊二分什么的!

====================================

bzoj1010[HNOI2008]玩具装箱 ->题解

bzoj1096[ZJOI2007]仓库建设 [懒得写题解了- -

bzoj1597[USACP2008 Mar]土地购买 ->题解

bzoj1911[Apio2010]特别行动队 ->题解

bzoj3156 防御准备 ->题解

bzoj3675[Apio2014] 序列分割 ->题解

bzoj3437 小P的牧场 ->题解

bzoj4518[SDOI2016] 征途 ->题解



推荐博客

http://blog.csdn.net/balloons2012/article/details/7912296


你可能感兴趣的:(斜率优化,带题表或总结的??,斜率优化,dp,动态规划,总结,题表)