首页 > 其他分享 >斜率优化DP

斜率优化DP

时间:2023-08-12 22:55:05浏览次数:65  
标签:状态 队列 斜率 DP 优化 单调

前置芝士 单调队列优化 DP

⌈ 写不动数据结构呜呜呜,先来补这个 ⌋

对于一个 DP,我们想优化祂的 ⌈ 转移 ⌋

有些题目的可选状态有以下特征

  • 需要寻找最值

  • 可选状态区间平移

  • 存在可以永久去除的多余状态

感性的讲,可行性是一个滑动窗口,状态两两之间都可以 ⌈ 直接比较出优劣 ⌋ 且 ⌈ 优劣比较可以传递 ⌋

这样就有可能可以单调队列优化力

对于两个状态 \(i,j\) ,如果 \(j\) 比 \(i\) 贡献好,失效晚,那么这个 \(i\) 就没有任何价值,非常的逊,否则 \(i,j\) 都是有可能成为队首滴,一个可以 ⌈ 用实力碾压对手 ⌋ ,一个可以 ⌈ 等对手退役 ⌋

我们维护一个单调的队列,使得队列越前面的选择越优秀,保持队列单调

每次我们做出以下行动

  • 去除队首多余状态

  • 去除队尾比新状态逊的状态

  • 队首即为所求,取用

  • 加入新状态

这里要注意的是这些步骤顺序要 ⌈ 结合题目具体考虑 ⌋ 哦 QWQ


斜率优化

tmd 的有点折磨人

我们要考虑 \(j_1,j_2(j_2>j_1)\) 两个决策之间的优劣

先写出 \(j_x->i\) 的贡献,注意如果这里有平方之类的东西我们需要强拆化简掉

之后考虑何时 \(j_2\) 比 \(j_1\) 优,注意参数分离哦

化式子的时候我们要着力于将只含 \(j_1,j_2\) 或者含有 \(j1,j2\) 的三种尽力分来来,为了让状态相对独立 ,然后含有 \(j_x\) 的式子可能有点长,我们用函数代替掉

最后,写成斜率式子,形式类似 \(t(j_1,j_2)=\frac{y(j_1)-y(j_2)}{x(j_1)-x(j_2)}<g(i)\) 啦!

这种左边 ⌈ 两点成斜率 ⌋ 的式子可以使用一种大法: ⌈ 斜率优化 ⌋

注意这里的函数 \(x(i),g(i)\) 要单调哦

我们用 \(j_1,j_2,...,j_k\) 表示队列中的决策哈

那么有两个重要的结论

  • \(t(j_r,j_{r+1})<g(i)\) 之类的,反正满足那个式子,且最优决策在队首队尾之类的地方,看题目的单调性具体咋样

大概这样

p1

  • 可以维护相邻决策之间的斜率单调减或者增

大概这样

p2

总结一下,大概这样

另外还有一种理解方式,\(g(i)\) 左右对应两种不同答案,一边一种优

p3

和这样

p4

(图片转自 WC2016 课件)

另外,如果 \(g(i)\) 不单调了,可以不弹队列一端,然后二分

标签:状态,队列,斜率,DP,优化,单调
From: https://www.cnblogs.com/chelsyqwq/p/17625756.html

相关文章

  • UDP
    UDP不像TCP创建连接时有3次握手,而是直接发送数据,不管对方是否接收到。UDP网络通信不区分客户端和服务端。 UDP收发数据的步骤1.创建UDP套接字对象2.直接发送数据3.读取数据4.关闭套接字 示例服务端1'''2UDP应该说没有服务端和客户端,只是习惯称发......
  • 如何用随机方法求解组合优化问题(一)
    什么是组合优化问题定义优化问题设\(x\)是决策变量,\(D\)是\(x\)的定义域,\(f(x)\)是指标函数,\(g(x)\)是约束条件。则优化问题可以表示为求解满足\(g(x)\)的\(f(x)\)最小值问题。即:\[\min_{x\inD}(f(x)|g(x))\]组合优化问题如果在定义域\(D\)上,满足约束条件......
  • 【BP回归预测】基于粒子群算法优化BP神经网络实现数据回归预测附matlab代码
    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。......
  • 国标GB28181视频平台LntonGBS(源码版)国标视频平台在网络不稳定的强况下重复申请视频拉
    LntonGBS是基于国标GB28181协议的视频云服务平台,支持将国标协议的设备统一接入并进行集中管理。平台具备优秀的视频能力,包括视频监控直播、录像、云存储、回放、平台级联、语音对讲、智能告警等功能,在线下场景中已有大量落地应用。我们在项目测试中发现,LntonGBS通过web页面请求拉流......
  • RTMP流媒体服务器LntonMedia(免费版)视频直播点播平台采用Golang指针问题导致平台重复推
    我们的团队在研发视频流媒体平台时,广泛应用了Go语言。之前我们也与大家交流过关于Go语言指针的问题和应用。如果你对视频流媒体平台编译中如何运用Go语言指针感兴趣,可以了解一下我们的讨论。在对LntonMedia的编译中,我们发现Golang指针问题会导致系统内的重复推流。Golang遍历切片代......
  • RTMP流媒体服务器LntonMedia(免费)互联网视频云平台优化HLS的访问路径的方案
    LntonMedia视频平台具有便捷可控的特点,观看视频推流和直播时无需安装插件,只需通过浏览器进入平台即可进行配置。对于用户而言,这一优势使他们无需额外搭建服务器,享受到了方便和可操作性。在原先的LntonMedia设计中,LntonMedia平台直接获取到流媒体的存储hls的路径,然后将该路径变为可......
  • 「学习笔记」线段树优化建图
    在建图连边的过程中,我们时常会碰到这种题目,一个点向一段连续的区间中的点连边或者一个连续的区间向一个点连边,如果我们真的一条一条连过去,那一旦点的数量多了复杂度就爆炸了,这里就需要用线段树的区间性质来优化我们的建图了。那棵线段树大概长这个样子。到时候加边的时候是这个......
  • [MDP.Net] 平台架構
    MDP.Net將應用系統切割為:模組、隔離、平台三個分層,透過架構設計提供模組重用、參數調整、環境建置...等等面向的快速開發能力。-模組:企業的商業知識、共用的功能邏輯,在MDP.Net裡會被開發成為一個一個的「模組」,方便開發人員依照商業需求,快速組合出應用系統。-隔離:MDP.Net加......
  • [MDP.Net] 模組架構
    MDP.Net遵循三層式架構,將模組開發切割為:系統展示、領域邏輯、資料存取三個分層,減少模組對於元件、平台、框架的直接依賴,提高模組自身的內聚力。-系統展示(Presentation):與目標客戶互動、與遠端系統通訊...等等的功能邏輯,會被歸類在系統展示。例如,使用MessageBox通知使用者處理......
  • DP1
    DP1P2523[HAOI2011]Problemc从后往前考虑,容易判掉无解。启发我们计数也从后往前考虑,设\(f[i][j]\)表示考虑到\([i,n]\)的位置,确定了\(j\)个人的编号的方案数。转移枚举之前确定了多少个人、在当前位置确定多少个人即可。CF311BCatsTransport求出正好接到每只小......