• 斜率优化总结&基础题表


    前言

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

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

    斜率优化就是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]成立的最小/大值


    可以看出。答案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


  • 相关阅读:
    程序员7种武器成
    FastReport 使用技巧篇
    FastReport调用Delphi中的自定义函数(人民币大写金额)mtm
    FastReport里面正确调用函数的方法
    FastReport报表设计
    FastReport报表对象介绍一:“Text”对象
    设定报表变量的CharSpacing
    FastReport问题整理(技巧)
    FASTREPORT 整理 (mtm)
    fastReport 运行时设计报表 (mtm)
  • 原文地址:https://www.cnblogs.com/Euryale-Rose/p/6527859.html
Copyright © 2020-2023  润新知