夏令营7-12贪心学习笔记&总结

贪心

贪心就是在当前条件下的最优解。与DP不同,贪心是保证在当前条件下的最优解。

正常贪心

(我只能用这几个字来和区间区别了)

T1 摩天轮

思路:最大的应该最重与最轻的匹配。如果如果和另一个人匹配,会浪费一些重量。

让凑对的人最多(让座舱最满)

证明正确:假设不是最优,尝试使用不是这个的方法。看看有没有反例。

要从“第一步怎么走”入手。

T2 萨鲁曼的部队

直到要不能满足了再去考虑这个点。

在$[x,x+r]$中找一个点,打一个标记。

T3 小木棍

出了原题错题不可做题而且CSP-J2024也是T3

8用的木棍最多,所以先全选8,位数最小。

在确定了$n-1$位以后,最高位就确定了。

优先让前几位小。总共x位,$x=(\frac{n}{7})向上取整$。

按照$\frac{n}{7}$的余数分类讨

这题分类讨论的类别

  1. 位数最少
  2. 从高往低尽量小。

区间问题

就一句:
$$
全是\huge经典\Huge模板\times N
$$

区间安排问题

按照左端点排序是考虑这样的情况:

按照左端点排序的问题

考虑逐步开放所有可放的区间,当有区间可以进入时,就进入。相当于找对最后影响最小的区间。即按照右端点排序。

区间选点问题

没有例题先不写

区间覆盖问题1

问题:数轴上有$n$个区间$[L_i,R_i]$,从中选取尽量少的区间覆盖$[x,y]$。

$L$从小到大,$R$从大到小

区间覆盖问题1.2

问题:数轴上有$n$个区间$[L_i,R_i]$,从中选取尽量少的区间覆盖$[x,y]$。区别是这个问题是时段。所以$x=r+1$

区间覆盖问题2

区间覆盖问题2

一般的点和区间配对问题

点和区间配对:

所有能和这个点配对的区间中,要选取R的最小值,且能覆盖这个点。因为R大的区间有可能覆盖下一个点。

T7 带区间限制的装箱问题

这题中,可以把盒子当成上一题的点,球当成上一题的区间。

区别是,这里有$10^9$个点,不能逐个枚举,要忽略无用的点。

T8 代金券

$[L_i,1^{9}](正无穷)$

经典错误:

  • $D_i越大越先用$
  • $L_i越小越先用$

原则:

  • 优先使用优惠大的代金券
  • 多用代金券

区间分组问题

T9 牛栏预定(区间分组问题)

把区间分组,每一组的区间两两不相交。

R从往大。L从小往大。

  1. 取L的最小区间$[L_1,R_1]$
  2. upper_bound $L_2>R_1$
  3. ……,得到1组。

T10 CSP2021-S-1-廊桥分配

这道题的一个关键就是你无法调整飞机靠不靠廊桥,只能控制放几个在国内或国际。飞机是有位置就靠上去,没位置就停在远机位。

对国内区,国际区其实是一样的。

$计算出停靠在国内区i廊桥上的飞机数量C_{1,i},国际区i号廊桥上的数量C_{2,i}。$

$计算出C_1和c_2的前缀和序列S_1和S_2。$

答案是$max_{0\le i\le n}(s_{1,i}+s_{2,i})$

带反悔的贪心

T13 股票

这题其实有多种解法,这里选择反悔的贪心。

在第$i$天,如果有价值低于$P_i$的股票,就把最便宜的一股买下,但是保留反悔的选项,可以撤消这个行为。

T14 奶牛优惠券

$先买C_i前K小的牛。如果还有钱,以后每次买剩余中的min(C_i+Δ_K,P_i)最小的牛。其中,Δ_K代表了最小优惠。$


夏令营7-12贪心学习笔记&总结
https://joshua0729.github.io/2025/07/12/夏令营7-12贪心学习笔记&总结/
作者
Joshua0729
发布于
2025-07-12 08:07:00.077
更新于
2025-07-19 08:07:83.5353
许可协议