社区讨论

提供一个题解区没有提出的想法

CF1601DDifficult Mountain参与者 5已保存回复 4

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
4 条
当前快照
1 份
快照标识符
@lo2w4ste
此快照首次捕获于
2023/10/23 20:45
2 年前
此快照最后确认于
2023/10/30 20:50
2 年前
查看原帖
没有详细证明,就不交题解了(而且这题题解也满了),只是提供另一种思路。
不妨把登山者分为 si<ais_i < a_isiais_i \ge a_i 两类。
如果我们只单独考虑第一类,容易发现按照 aia_i 升序贪心考虑(能登山就登)一定是最优的;如果我们只单独考虑第二类,按照 sis_i 升序贪心考虑一定是最优的。这两个的证明是简单的。
那么显然考虑两种情况同时出现,首先可以证明的是同一类之间的登山者贪心的相对顺序是不变的,证明的话就考虑如果其与原顺序不同,我交换回来一定是不会劣的。
这样我们只需要考虑当前两类的最优决策 uuvv 如何选择了:
  • 如果 ausva_u \le s_v,那么我们选择 uu 不会对第二类决策产生任何影响,那不选白不选,我们当然会先选择 uu
  • 否则你发现如果我们选了 uu 那就不能选 vv 了,且得到新的 d=au>svd'=a_u > s_v。这不好,因为我们换成选择 vv 可以得到新的 d=max{d,av}sv<dd''=\max\{d,a_v\}\le s_v < d',所以选择 vv 显然是更优的。
于是直接这样贪心即可。
仔细分析的话会发现这个思路与题解区按照 (max{si,ai},si)(\max\{s_i,a_i\},s_i) 进行双关键字再贪心的思路本质相同,但是我个人认为这个思路更加自然明了(

回复

4 条回复,欢迎继续交流。

正在加载回复...