2.贪心算法不是对所有问题都能得到整体最优解,关键是贪心策略的选择,(选择的贪心策略必须具备无后效性,即某个状态以前的过程不会影响以后的状态,只与当前状态有关)
总结: 贪心在于如何选取策略
以百练 : 传送门
- 描述
- 大学生电影节在北大举办! 这天,在北大各地放了多部电影,给定每部电影的放映时间区间,区间重叠的电影不可能同时看(端点可以重合),问李雷最多可以看多少部电影。
- 输入
- 多组数据。每组数据开头是n(n<=100),表示共n场电影。
- 接下来n行,每行两个整数(0到1000之间),表示一场电影的放映区间
- n=0则数据结束
- 输出
- 对每组数据输出最多能看几部电影
对于每部电影来说.我们可以知道三个信息
1.电影的开始时间
2.电影的结束时间
3.整个电影的时间(间接求解)
所以相对应的贪心策略有3种选择
策略1,选择电影开始时间都是最早的.
策略2,选择整个电影时间是最短的
策略3,选择电影结束时间最早的.
策略1,策略2,都能举反例 .剩下策略3成立。
验证策略3的合理性
如果我看的电影时间结束的早,我剩下看电影的时间就能更多,看电影的时间越多,所看的电影数也越多
(实际我是画了一个坐标轴,进行模拟)
推理结束