[学习笔记] 贪心

news/2024/10/24 22:00:56/文章来源:https://www.cnblogs.com/huangkxQwQ/p/18499345

写在前面

参考

《算法竞赛进阶指南》贪心部分(在[“基础算法”](?)那一部分)。(有些是直接抄的这本书上的。)

XK 给我们讲课的[课件](?)。

2024.10.23 模拟赛 T2 及其题解。

(目前是这些)

之后应该还有今年暑假集训时的贪心 PPT。

关于本文中“贪心”的含义

本文所言的贪心是“广义”的,即不一定是只考虑局部最优得到全局最优,而是 给出普遍性的最优策略 都算“贪心”。(相比之下,最优化 DP 相当于对特殊情况(比如对于某一个每个位置的值都知道的序列)求出最优策略,而本文所言“贪心”是指直接给出普遍的最优策略,这个策略对满足某种条件的每个情况都是[最优](?)的)

贪心题的特征

  • 像是要 DP,但用 DP 时空复杂度太高,无法接受。
  • (某类题)选择每个东西的 代价 / 价值 是相同的。

思考贪心 & 证明贪心 的方法

1. 微扰法

任意小变化都会导致全局不优,因此某种方案不变化是全局最优的方案。

经典:邻项交换排序贪心。

2. [决策包容性](?)

[如果某种决策能到达所有的状态,就可以用这种决策。相当于这种决策到达的状态包含了最优决策到达的状态。](?)

例一:见《算法竞赛进阶指南》。

例二:(2024.10.23 模拟赛 T2)每次选最短的能选的,包含了选较长的能选的的情况。于是就每次都选最短的能选的。

3. 扩展法(记不到名字了)

[即证明从局部最优的情况扩展到新的情况仍是最优的。类似归纳法。](?)

4. 归纳法

5. 反证法

贪心和其他算法的结合

贪心缩小范围:例如当 DP 的状态过多(范围太大)时,可以考虑贪心地证明只需要一个较小的范围。贪心应该也可以以这种方式和搜索结合。(实际上,贪心、DP、搜索 可以结合,见:我的另一篇博客)

以贪心求得策略之后用数据结构维护。(2024.10.23 模拟赛 T2)

贪心和 DP 结合。(XK 的 贪心 课件里,我忘了是什么了)咕咕咕。

例题

咕咕咕。

2024.10.24

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/821387.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

免费的erp系统有哪些

在市场上,有一些免费的ERP系统,它们提供了成本效益高、功能齐全的解决方案。这些系统包括:1. Odoo;2.Dolibarr;3.ERPNext;4.xTuple PostBooks;5.FrontAccounting;6.Apache OFBiz;7.Metasfresh。Odoo是一个全面的开源ERP解决方案,适用于中小型企业,尤其是那些需要高度…

扩展KMP

前言 扩展KMP又称Z函数,可以快速的求出一个字符串的每一个后缀的与其的LCP(最大公共前缀)长度。 至于为什么要学习exKMP,因为(数据规模很上进)我们都是上进的OIer。 算法思路 暴力朴素的算法 将\(n\)个字符的字符串S中第\(i\)位开始的后缀与S的开头一一比较,求出LCP数组…

运算

模二加(异或)运算模 即取余 模运算 当两个整数 a 和 b 模 n 同余,记作 a≡b(mod n),意味着 a 和 b 被 n 除后余数相同。 基本性质:封闭性:如果 a≡b(mod n) 且 c≡d(mod n),那么 a+c≡b+d(mod n),以及 a⋅c≡b⋅d(mod n)。 乘法逆元:对于任何整数 a 和正整数 n,存在一…

Knapsack题解

题面下划线:符合单调性 举例:k=3W : 1 2 3 4 5V : 6 5 1 2 4g: 15 11 7 6 4

Win11安装基于WSL2的Ubuntu

详细介绍了Win11安装基于WSL2的Ubuntu的过程。1. 概述 趁着还没有完全忘记,详细记录一下在Win11下安装基于WSL2的Ubuntu的详细过程。不得不说WLS2现在被微软开发的比较强大了,还是很值得安装和使用的,笔者就通过WLS2安装的Ubuntu成功搭建了ROS环境。 2. 详论 2.1 子系统安装…

什么是芯片领域的敏捷设计(Agile Development)

芯片领域的敏捷设计是一种灵活的开发方法,致力于更快速、更高效地开发和优化集成电路(IC)和半导体技术。其核心特点包括:1、迭代开发;2、跨功能团队合作;3、客户反馈导向;4、及时响应变更。其中,迭代开发强调分阶段、小步快跑的设计方法,有助于快速地调整和优化设计。…

Clickhouse基本使用方法详细讲解(包括详细步骤及相关操作截图)

超详细ClickHouse学习笔记 一、ClickHouse概述 ClickHouse是一个用于在线分析处理查询(OLAP)的列式数据库管理系统(DBMS)。它由Altinity公司开发,支持线性扩展和高性能的数据压缩。ClickHouse以其卓越的数据处理速度而闻名,特别适合于大规模数据集的实时查询和分析。OLTP…

高ROI的行业或项目一般有什么样的特点

高ROI的行业或项目一般的特点有:1、市场需求的洞察;2、有效的成本控制;3、创新和技术应用;4、强大的市场定位;5、风险管理。实现高ROI的项目通常基于对市场需求的深刻洞察。这意味着项目管理者或企业家需要了解消费者的需求,预测市场趋势,并能够提供满足这些需求的产品或…

IDEA如何更改背景桌面图片

前言 我们在使用IDEA开发Java应用时,经常对着屏幕,有时候也感觉有点枯燥,这时候,就可以设置一个背景图片来缓解一下,比如说设置一张风景图片,或者设置一个美女图片,哈哈哈。 那么,我们可以如何设置呢? 如何设置 首先,我们打开设置面板。然后,我们点击下【Appearance…

灰色代码部分:要是输入名字列表,又能输出结果,但是空列表的时候就输出不了?

大家好,我是Python进阶者。 一、前言 前几天在Python白银交流群【Aciel】问了一个Python基础的问题,问题如下:灰色代码部分:要是输入名字列表,又能输出结果,但是空列表的时候就输出不了?二、实现过程 这里【瑜亮老师】给了一个指导,具体如下所示:@Aciel 循环 for nam…

assembly2

汇编2 寄存器(不同架构不同) 8086中寄存器均为16位,可存放两个字节(1byte=8bit)。 通用寄存器AX,BX,CX,DX用来存储一般性的数据,被称为通用寄存器。二进制数据在寄存器中是低位存在低地址,高位存在高地址。也可将一个寄存器分为H,L(高8位低8位)来做8位存储器。字在寄存器…

shctf[Week3] 小小cms

看到首页面 了解到YzmCMS的版本,上网搜搜这个版本存在的漏洞 发现存在任意函数调用RCE的漏洞 https://blog.csdn.net/shelter1234567/article/details/138524342 根据文章直接抄payload,进入/pay/index/pay_callback目录下下面cat /flag即可,最终的payload为 out_trade_no[0…