0 参考资料

1 斜率优化

1.1 斜率优化简介

如果一类最优化问题的 dp 式可以被表示为 \(f_i = \min / \max \{f_j + cosx_i + cosy_j + F_iF_j\}\),则它一般可以被斜率优化直接优化。

这里我们就以最小值为例。

1.2 决策点策略

假设我们要计算 \(f_p\)。

我们考虑计算当决策点 \(i < j\) 时,\(i\) 比 \(j\) 优秀的条件。

\[f_i + cosx_p + cosy_i + F_iF_p < f_j + cosx_p + cosy_j + F_jF_p
\]

将式子进行化简,得:

\[f_i - f_j < cosy_j - cosy_i + (F_j - F_i) \times F_p
\]

继续化简:

\[(cosy_j + f_j) - (cosy_i + f_i) + (F_j - F_i) \times F_p > 0
\]

这时,我们设 \(x_i = cosy_i + f_i\),则:

\[(F_j - F_i) \times F_p > x_i - x_j
\]

把式子整理得好看一点:

\[\operatorname{slope}(i, j) = \frac{x_i - x_j}{F_i - F_j} > F_p
\]

后面的式子是一个斜率的形式,所以我们把他称之为 斜率优化

1.3 维护决策点

\(x_i\) 和 \(F_i\) 都有序。

于是有两个结论。

结论 1:若当前 \(i\) 比 \(j\) 优,则之后 \(i\) 一定也比 \(j\) 优。

结论 2:相邻决策之间的斜率单调增。

证明较为简单。

可以直接维护单调队列。

\(x_i\) 有序。

结论 1 不存在了,但是还有结论 2!

需要在凸壳上二分。

\(F_i\) 有序。

需要使用平衡树等维护凸壳。

其他情况。

需要 动态凸壳 / 李超线段树。

1.4 斜率优化总结

斜率优化

1.5 经典题目

I. P3195 [HNOI2008]玩具装箱

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

  1. DP动态规划学习笔记——高级篇上

    说了要肝的怎么能咕咕咕呢? 不了解DP或者想从基础开始学习DP的请移步上一篇博客:DP动态规划学习笔记 这一篇博客我们将分为上中下三篇(这样就不用咕咕咕了...),上篇是较难一些树形DP,中篇则是数位 ...

  2. KVM性能优化学习笔记

    本学习笔记系列都是采用CentOS6.x操作系统,KVM虚拟机的管理也是采用virsh方式,网上的很多的文章都基于ubuntu高版本内核下,KVM的一些新的特性支持更好,本文只是记录了CentOS6. ...

  3. 深挖计算机基础:Linux性能优化学习笔记

    参考极客时间专栏<Linux性能优化实战>学习笔记 一.CPU性能:13讲 Linux性能优化实战学习笔记:第二讲 Linux性能优化实战学习笔记:第三讲 Linux性能优化实战学习笔记: ...

  4. Pandas 性能优化 学习笔记

    摘要 本文介绍了使用 Pandas 进行数据挖掘时常用的加速技巧. 实验环境 import numpy as np import pandas as pd print(np.__version__) ...

  5. 清北学堂2018DP&图论精讲班 DP部分学习笔记

    Day 1 上午 讲的挺基础的--不过还是有些地方不太明白 例1 给定一个数n,求将n划分成若干个正整数的方案数. 例2 数字三角形 例7 最长不下降子序列 以上太过于基础,不做深入讨论 例3 给定一 ...

  6. [斜率优化DP]【学习笔记】【更新中】

    参考资料: 1.元旦集训的课件已经很好了 http://files.cnblogs.com/files/candy99/dp.pdf 2.http://www.cnblogs.com/MashiroS ...

  7. DP斜率优化学习笔记

    斜率优化 首先,可以进行斜率优化的DP方程式一般式为$dp[i]=\max_{j=1}^{i-1}/\min_{j=1}^{i-1}\{a(i)*x(j)+b(i)*y(j)\}$ 其中$a(j)$和 ...

  8. hdu3507 斜率优化学习笔记(斜率优化+dp)

    QWQ菜的真实. 首先来看这个题. 很显然能得到一个朴素的\(dp\)柿子 \[dp[i]=max(dp[i],dp[j]+(sum[i]-sum[j])^2) \] 但是因为\(n\le 50000 ...

  9. DP动态规划学习笔记

    作为考察范围最广,考察次数最多的算法,当然要开一篇博客来复习啦. 子曰:温故而知新,可以为师矣 我复习DP时有一些自己对DP的理解,也就分享出来吧. ——正片开始—— 动态规划算法,即Dynamic ...

  10. mysql性能优化学习笔记(2)如何发现有问题的sql

    一.使用mysql慢查询日志对有效率问题的sql进行监控      1)开启慢查询       show variables like ‘slow_query_log’;//查看是否开启慢查询日志   ...

随机推荐

  1. Python Set | update()

    Python update() function in set adds elements from a set (passed as an argument) to the set. Syntax ...

  2. RPC的通信流程

    核心原理:能否画张图解释下RPC的通信流程? RPC的全称是Remote Procedure Call,即远程过程调用.RPC帮助我们屏蔽网络编程细节,实现调用远程方法跟调用本地(同一个项目中的方法) ...

  3. CAP 关键细节点与ACID、BASE的比较

    极客时间:<从 0 开始学架构>:想成为架构师,你必须掌握的CAP细节 1.CAP 关键细节点 埃里克·布鲁尔(Eric Brewer)在<CAP 理论十二年回顾:"规则& ...

  4. the server time zone value ‘�й���׼ʱ��‘ is unrecognized or represents more than one time zone.

    分析:数据库和系统时区差异造成 解决:在jdbc连接的url后面加上 &serverTimezone=GMT

  5. 基于Scikit-learn与Flask的医疗AI糖尿病预测系统开发实战

    引言 在精准医疗时代,人工智能技术正在重塑临床决策流程.本文将深入解析如何基于MIMIC-III医疗大数据集,使用Python生态构建符合医疗AI开发规范的糖尿病预测系统.项目涵盖从数据治理到模型部署 ...

  6. dfs优化剪枝

    题目链接:D - Peaceful Teams (atcoder.jp) 先看数据范围,肯定是搜索相关 首先想到从第1个人, 第0个队开始的搜索顺序 ,因为这属于内部顺序,所以每次搜索要回溯状态,注意 ...

  7. 邮件收件、读取邮件API-批量导入-支持代理-开放HTTP接口

    简介 大恩邮箱收件平台,支持读取收件箱.垃圾箱的邮件.支持批量导入各大邮箱平台的账号(例如微软.谷歌.网易.QQ等),采用pop3.imap协议收件,支持配置代理IP.验证码截取规则等,同时提供了HT ...

  8. 在Avalonia中使用相对单位

    Avalonia目前不具备相对单位功能,要使用相对单位需要安装RelativeControl.Avalonia包 RelativeControl.Avalonia 开始使用 添加NuGet包: dot ...

  9. 指标+AI:迈向智能化,让指标应用更高效

    近日,以"Data+AI,构建新质生产力"为主题的袋鼠云春季发布会圆满落幕,大会带来了一系列"+AI"的数字化产品与最新行业沉淀,旨在将数据与AI紧密结合,打破 ...

  10. MongoDB入门实战教程(9)

    前面我们学习了如何套用常见的设计模式打造合适的模型设计,本篇我们来看看在MongoDB中如何使用索引来提高查询效率. 1 MongoDB也有索引? 在使用传统关系型数据库如MSSQL.MySQL等的时 ...