首页 > 其他分享 >9.20 斜率优化复习

9.20 斜率优化复习

时间:2024-09-20 11:45:40浏览次数:10  
标签:直线 9.20 复习 斜率 当前 优化 转移 dp

看我之前写的狗屎:https://www.becoder.com.cn/article/11836。

当时根本就不懂斜率优化是什么。

今天真的懂了,来写总结。


1 问题转化

对于一类 dp 方程式:\(f(i) = \min \{ f(j) + A(j)*g(i)+B(j)+t(i) \}\)。可以用斜率优化。

设 \(b=f(i)-t(i)\)。把当前 dp 转移当成是一条斜率为 \(k(x)\) 的动直线(\(b\) 未知),容易知道我们需要让 \(b\) 最小。

考虑把每个 \(j\) 的转移点当成平面上的一个点,当前直线在 \(j\) 处的 \(b\) 就是转移结果。此时根据基础函数知识:

\(Y(j)=k(x)*X(j)+b\)。

那么当前转移就有“当前点数”种转移,每个点我们都能算出对应的 \(b\),取最小值即可。

换一种等价描述:将一条斜率为 \(k\) 的直线从下向上移动,碰到的第一个点处的 \(b\) 就是当前转移答案,即 \(f(i)\)。

由于现在经过了之前的一个决策点,所以 \(f(i)\) 一定能取到这个点。


2 解决方法

2.0 分讨

就是根据加入的 \(x\) 是否单调进行讨论。如果单调则有更简单的做法。

2.1 李超

我们再把问题转化一下,我们考虑把点变成直线,即:\((X(j),Y(j))\) 变成 \(y=k(j)x+b(j)\)。其中 \(k(j)=X(j),b(j)=Y(j)\)。

然后 \(y=f(i)\),\(x\) 就是和 \(i\) 有关的数,整个式子大致还原了 dp 方程式。

对于决策点,我们就在对应区间加入一条直线;转移,就查询区间内的所有线段在 \(x\) 点的取值的最小值。这个可以李超维护。

对于一般的问题,对应的区间都是全局,所以李超树可以很好写。

比如在 Machine Works 一题中,为了避免动态开点的大常数,我们考虑还是维护 \([1,n]\) 的点,离散化即可。(一开始还是对 \(d\) 排序)

标签:直线,9.20,复习,斜率,当前,优化,转移,dp
From: https://www.cnblogs.com/LCat90/p/18422199

相关文章

  • 百度测开面试复习
    一、测开实习部分1、实习期间主要做了哪些工作熟悉测试流程:理解需求文档,参与需求KT(KnowledgeTransfer),测试用例编写,测试用例执行(包括回归测试),编写测试报告独立完成测试工具后端接口开发独立承接测试需求,实现关键链路自动化测试2、实习做的项目用了哪些技术栈Spring、Spr......
  • Mybatis-plus复习篇--加油
    文章目录1.MyBatis-plus基础1.1.mybatis-plus简介1.2.基本使用1.3.注解映射主键生成策略1.4.命名转换问题1.5.关闭命名转换功能2.BaseMapper核心接口1.MyBatis-plus基础1.1.mybatis-plus简介MyBatis-Plus(简称MP)是一个 MyBatis的增强工具,在MyBatis的基础上只做增强不......
  • 常用学习、面试复习、开发网站
    JavaGuide二哥的Java进阶之路开发者客栈:Java后端面试题大全easyexcelMyBatis-PlusHuToolSpring官网网站kimi文心一言......
  • mybatis知识复习
    配置文件方式--快速入门这里插入几个学习时的错误:mybatis-config.xml找不到Mapper:我的原因是把Mapper放到了Java下的SRC路径,但IDEA并不会寻找到,所以要么是在pom.xml中加上。。。(没看),我用的是:在resource下建立一个同名的包:com/。/xxx如果不想建立一个新包(但一般都会吧?),参考这个......
  • Java多线程复习
    目录3种创建方式(现阶段推荐Runnable接口)下载网上的图片(利用了commons-io中的copyUrlToFiles方法)小结买票的例子(Thread的构造方法,获取当前线程的名称,线程休眠)龟兔赛跑的例子实现Callable接口线程停止线程休眠线程礼让Join方法(main线程与Thread子线程)线......
  • CSP 初赛要点复习
    位运算逻辑与、按位与之类的东西是不同的!“逻辑”的是判断两个数都不为\(0\),“按位”的是判断两个数的每一个二进制位与的结果,是不同的。其他运算也类似。运算符优先级如图所示:注意,~和!是同级的。加法位运算表示:a+b=(a^b)+((a&b)<<1)。与的符号开口向下,和交集的符号\(......
  • 活动召集丨实时多模态 AI Builder 团聚!RTE Open Day@S创上海,9.20/21
       9月20~21日,上海,S创上海2024,看见不一样的创新和技术。 这场年轻、多元、活力十足的科技盛会,将汇聚创业者、开发者、艺术家和众多无法定义边界的跨界者。RTE开发者社区的Builders和RTEOpenDay也将玩乐其中! 「有一群人在一起,就很好」。来到第四期的RTE......
  • SQL编程题复习(24/9/15)
    练习题x4010-114检索出course表中前3门课程的课号及课程名称的记录10-115检索出students表中“信息学院”的学生姓名、性别和出生日期的记录10-116检索出students表中所有系名的记录,要求结果中系名不重复10-117检索出sc表中‘C001’课程未登记成绩的学生学号(MSSQL)10......
  • NOIP 复习题之动态规划
    AT_joi2022ho_c選挙で勝とう首先要先把协作者买出来,再对于之后的州把买的协作者全部用上。则我们可以先枚举需要的协作者数量\(x\),可以知道的是:我们枚举选择哪些\(x\)个协作者,再在剩下的州中选择\(A_i\)最小的\(K-x\)个州即可。则考虑dp。我们对\(B_i\)进行排序后,协作......
  • 课内外结合进行送别诗的复习策略4
    四、寻找细微差别,在相似中凸显个性学到这里,学生会认为送别诗都特别的伤感,为了打破这个印象,笔者又出示了以下两首诗:(1)《芙蓉楼送辛渐》洛阳亲友如相问,一片冰心在玉壶。(表达自己开阔胸怀和高尚的气节)(2)《别董大》莫愁前路无知己,天下谁人不识君。(在安慰朋友的同时,给予他信心和力量......