2023.7.17 学习笔记

贪心

作为一种算法常常与其他算法搭配使用,很难见到只依赖贪心一种算法的题目,但贪心发现的性质可能是构建解题思路的基础。

核心思想:交换原则,交换相邻的两项看看是否更优,并通过比较推出式子,得出结论。


一道很典的贪心了,先关于结束时间排序,然后能取则取,并一直往后更新。根据交换原则即可证明其正确性:对其中任意一次进行更改, 音乐会场数不变时,结束时间一定在更后面,一定可以用结束时间最早的进行替换,故该贪心正确


因为每个人的奖赏会受到他前面所有人的影响, 难以直接贪心确定顺序。

考虑到两个性质:

  • 任意两个可能的序列,都可以通过若刊词相邻的人的交换操作完成变换。
  • 交换相邻两个人的顺序只会影响这两人的奖赏。

因此考虑交换两个人 i, j 对他们收益的影响,设 mul[i]1-i 的前缀积,则每个人的收益为 \frac{mul[i]} {l[i] \times r[i]} . 计算得到 按 l[i] \times r[i] 从小到大排序 即为最优解。还有一个注意点:本题实现要用高精度 出题人对考察知识点的奇怪偏好


对于 n 个产品, 将其分为两类, a[i] > b[i] 的分为一类, a[i] \le b[i] 的分为另一类。前一类关于 a[i] 升序排序, 后一类关于 b[i] 降序排序即可。

正确性自己理性理解

小组成员:邵品渊,邵品砚,蒋佳成,顾天泽,马天翔,陈继禹

2 个赞

膜拜