斜率优化 DP

适用情况

适用于求解最优解(最大、最小)问题。

上凸壳与下凸壳

求解步骤

  1. 对于任意状态转义方程,设 \(A_i\),\(B_i\),使状态转移方程转化为

    • \(f_i = \min(f_j + (A_i - B_j) ^ 2)\)
  2. 当 \(i\) 使从 \(j\) 转移来时,丢掉 \(\min\)

    • \(f_i = f_j + {A_i} ^ 2 + {B_j} ^ 2 - 2 \times A_i \times B_j\)
  3. 将仅和 \(j\) 有关的放在左边,其他的放在右边

    • \(f_j + {B_j} ^ 2 = 2 \times A_i \times B_j + f_i - {A_i} ^ 2\)
  4. 仅和 \(j\) 有关的,是已经求出来的,看做 \(y\);仅和 \(i\) 有关的,再附加上常数,是需要求的,看做纵截距;剩下的与 \(i\) 和 \(j\) 都有关,将其中仅与 \(j\) 有关的因式看做 \(x\),剩余的因式看做斜率

    • \(y = f_j + {B_j} ^ 2\)
    • \(k = 2 \times A_i\)
    • \(x = B_j\)
    • \(b = f_i - {A_i} ^ 2\)
  5. 当 \(x\) 单调递增时:

    • 若 \(k\) 单调递增或递减,可以使用单调栈维护
    • 若 \(k\) 无单调性,可以在数组内二分斜率,找到与目标相切的点
  6. 已知两个点 \(\text{A}(x_1, y_1)\),\(\text{B}(x_2, y_2)\),则直线 \(\text{AB}\) 斜率为 \(\dfrac{y_1 - y_2}{x_1 - x_2}\)

  • 小问题:当 \(x\) 非单调递增呢?我还没学QwQ

题单

可以参考这个:https://www.luogu.com.cn/training/5352

斜率优化DP 学习笔记的更多相关文章

  1. 斜率优化DP学习笔记

    先摆上学习的文章: orzzz:斜率优化dp学习 Accept:斜率优化DP 感谢dalao们的讲解,还是十分清晰的 斜率优化$DP$的本质是,通过转移的一些性质,避免枚举地得到最优转移 经典题:HD ...

  2. 斜率优化dp学习笔记 洛谷P3915[HNOI2008]玩具装箱toy

    本文为原创??? 作者写这篇文章的时候刚刚初一毕业…… 如有错误请各位大佬指正 从例题入手 洛谷P3915[HNOI2008]玩具装箱toy Step0:读题 Q:暴力? 如果您学习过dp 不难推出d ...

  3. APIO2010 特别行动队 & 斜率优化DP算法笔记

    做完此题之后 自己应该算是真正理解了斜率优化DP 根据状态转移方程$f[i]=max(f[j]+ax^2+bx+c),x=sum[i]-sum[j]$ 可以变形为 $f[i]=max((a*sum[j ...

  4. 【笔记篇】单调队列优化dp学习笔记&&luogu2569_bzoj1855股票交♂易

    DP颂 DP之神 圣洁美丽 算法光芒照大地 我们怀着 崇高敬意 跪倒在DP神殿里 你的复杂 能让蒟蒻 试图入门却放弃 在你光辉 照耀下面 AC真心不容易 dp大概是最经久不衰 亘古不化的算法了吧. 而 ...

  5. 斜率优化DP复习笔记

    前言 复习笔记2nd. Warning:鉴于摆渡车是普及组题目,本文的难度定位在普及+至省选-. 参照洛谷的题目难度评分(不过感觉部分有虚高,提高组建议全部掌握,普及组可以选择性阅读.) 引用部分(如 ...

  6. 斜率优化dp学习

    用了一堂半的课才彻底搞懂.其他神犇写的博客或多或少有点小bug,所以orzzz不才斗胆重新写一个. 里面大量穿用其他神犇的原话,就不逐一标明出处了. 引用资料 Accept的博客 MathonL的博客 ...

  7. 线段树优化DP学习笔记 & JZOJ 孤独一生题解

    在 \(DP\) 的世界里 有一种题需要单调队列优化 \(DP\) 一般在此时,\(f_i\) 和它的决策集合 \(f_j\) 在转移时 \(i\) 不和 \(j\) 粘在一起(即所有的 \(j\) ...

  8. 决策单调性优化DP学习笔记

    用途 废话,当然是在DP式子满足某些性质的时候来优化复杂度-- 定义 对于\(j\)往大于\(j\)的\(i\)转移,可以表示成一个关于\(i\)的函数\(f_j(i)\),也就是\(dp_i=\ma ...

  9. hdu3507Print Article(斜率优化dp)

    Print Article Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others)To ...

  10. 【学习笔记】动态规划—斜率优化DP(超详细)

    [学习笔记]动态规划-斜率优化DP(超详细) [前言] 第一次写这么长的文章. 写完后感觉对斜优的理解又加深了一些. 斜优通常与决策单调性同时出现.可以说决策单调性是斜率优化的前提. 斜率优化 \(D ...

随机推荐

  1. element-ui中Select 选择器异步加载下一页

    场景 当我们使用 Select 选择器存放大量数据的时候. 会发现存在这么2个问题. 1.接口响应时间较长.(因为数据量较多,一次查询的所有)甚至有可能超时. 2.前端下拉框滑动卡顿. 这个时候们如何 ...

  2. Maven进阶学习指南

    前言 当我们在开发项目时,有时需要用到外部依赖组件,例如当我们需要Json序列化的时候需要用到FastJson组件,我们可以通过下载对应jar包加载到项目中.但当一个大的项目同时需要依赖各种各样的外部 ...

  3. UI自动化 --- 微软UI Automation

    引言 自动化测试平台的意义就三个字 --- 稳定性. 无论是接口自动化测试,还是UI自动化测试,目的就是为了提高产品的稳定性,保证用户体验. 那常见的接口自动化测试比如有 Postman ,SoapU ...

  4. 行行AI人才直播第9期:销氪副总裁陈摩西《AI在企业服务领域的商业化应用设计思路》

    人工智能 (AI) 正在颠覆几乎所有行业,并正在改变我们开展业务的方式.近年来,SaaS 行业一直是受影响最大的行业之一,人工智能在其指数级增长中发挥着至关重要的作用.随着 AI 技术逐渐落地和市场认 ...

  5. PTA 21级数据结构与算法实验8—排序

    目录 7-1 统计工龄 7-2 寻找大富翁 7-3 点赞狂魔 7-4 插入排序还是归并排序 7-5 插入排序还是堆排序 7-6 逆序对 7-7 堆排序 7-8 石子合并 7-9 第k小 7-10 快速 ...

  6. 实践分析丨AscendCL应用编译&运行案例

    本文分享自华为云社区<AscendCL应用编译&运行问题案例>,作者: 昇腾CANN. AscendCL(Ascend Computing Language)是一套用于在昇腾平台上 ...

  7. WPF 中WebBrowser 控件的“允许阻止的内容”修复(引用本地的html页)

    解决方法:(个人理解:导致原因就是iE安全机制的问题吧).在你的HTML里面第一行加: <!-- saved from url=(0014)about:internet -->具体原因可以 ...

  8. PyQt5实时刷新

    对于执行很耗时的程序来说,由于PyQt需要等待程序执行完毕才能进行下一步,这个过程表现在界面上就是卡顿,而如果需要执行这个耗时程序时不断的刷新界面.那么就可以使用QApplication.proces ...

  9. GGTalk 开源即时通讯系统源码剖析之:客户端全局缓存及本地存储

    继上篇<GGTalk 开源即时通讯系统源码剖析之:虚拟数据库>详细介绍了 GGTalk 内置的虚拟的数据库,无需部署真实数据库便能体验GGTalk的全部功能,虚拟数据库将极大地简化服务端的 ...

  10. mybatis系列: 简介以及使用

    目录 一.简介 二.简单使用 一.简介 MyBatis本质上就是对JDBC的封装,通过MyBatis完成CRUD. MyBatis在三层架构中负责持久层的,属于持久层框架. MyBatis的发展历程: ...