区间调度

来源:互联网 发布:php怎么写后台 编辑:程序博客网 时间:2024/04/30 15:59

题目描述:

         有n项工作,每项工作分别在si时间开始,ti时间结束。对于每项工作,你都可以选择参加与否。如果选择了这项工作,那么从始至终必须全程参加。此外,参加工作的时间段里不能重复参加别的工作。目标是尽可能参加尽量多的工作,求最多能参加多少工作。

解题思路:

         区间调度问题可以被认为是动态规划问题的雏形,然而这个问题可以用类似贪心的思想解决。

         可以有一下几种方法:

1.      在可选工作中,尽可能选择开始时间最早的工作去做。但是很显然这种思想并不能解决参加工作最多的问题。

2.      每次选择用时最短的工作。但是在工作时间重叠的时候这种思路显然不可行。

3.      选取重叠最少的工作。在多个工作都重叠在一起时,无法选择。也不行。

4.      选取结束时间最早的工作。

最后一个思路是正确的。结束时间尽可能的早,就像背包问题中的背包剩余空间,可选择的时间范围相比与其他情况就更大,可选择工作数量就更多。

代码写在家里电脑上……等找到了补上。

0 0
原创粉丝点击