贪心 不相交区间问题/区间调度问题/活动安排问题 凌乱的yyy/线段覆盖luoguP1803

P1803 凌乱的yyy / 线段覆盖 - 洛谷

今天考试,这个如此经典的贪心问题没做出来。当然,这和考试状态也有一定关系。感觉考试时有点慌,不够自信。还有就是一个思维惰性的习惯,总是喜欢还没分析清楚算法思路就先把输入输出这些非核心代码处理一下,反而干扰了自己的注意力。这归根结底还是不够自信,越是怕做不出来耽误时间,越容易想不出解决方案。

下来翻了一下算法书,竟然一下就翻到了,而且我刚好就看到前面一页,这页恰好没看。考试允许带纸质资料,早知道我带算法书进去了,别人都看算法书做出来了这就搞得我很被动。

不过其实我们赋分,就算我把这道题目做出来了也是赋一样的分。所以还是不要遗憾了,承认功夫不扎实、心态没能调整好,继续努力吧。

现在我就把这个坑给填上。有句话是这么说的:“种一棵树最好的时间是十年前,其次是现在。”

行了,熟悉我的人知道,我总是喜欢在写代码的时候讲讲故事,罗里吧嗦得很惹人讨厌。哈哈哈哈哈,我觉得程序员也是有血有肉的人嘛。下面进入正题了。

不相交区间(活动),每个区间有左端点和右端点(开始时间和终止时间),要求找到最多的不相交区间(活动)。

以下按“活动安排问题”来解释。

这个问题的目的是求最多活动数量,所以持续时间长的活动不受欢迎,受欢迎的是尽快结束的、持续时间短的活动。

其实抽象了也可以这么说:在一个数轴上有n条线段,现要选取其中k条线段使得这k条线段两两没有重合部分,问最大的k为多少。

考虑以下3种贪心策略:

  1. 最早开始时间。先选最早开始的活动a,当a结束后,再选下一个最早开始的活动。这种策略不好,因为它没有考虑活动的持续时间。假如a一直不结束,那么其他活动就不能开始。
  2. 最早结束时间。先选最早结束的活动a,当a
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值