【问题标题】:movie schedule algorithm in algorithm design manual book算法设计手册中的电影时间表算法
【发布时间】:2016-01-18 04:24:47
【问题描述】:

我有一个关于电影时间表算法正确答案的问题。

问题:电影调度问题

输入:行上的 n 个区间的集合 I。

输出:可以从 I 中选择的相互不重叠区间的最大子集是多少?enter image description here

书中正确答案是:

而总工作量 I != 0:

从所有工作 I 中接受最早完成日期的工作 j。删除 j,以及任何与 i 相交的区间。

我正在考虑以下场景:

enter image description here

在这种情况下,job1 先结束,但 job2 不是最好的选择吗?

谢谢,我刚开始学习算法。

【问题讨论】:

    标签: algorithm


    【解决方案1】:

    您的目标是最大化选择的工作总数,因此当您只接受工作 1 或只接受工作 2 时,解决方案是两种情况下都只有一份工作。

    选择具有最早完成日期的工作意味着您可以找到最大数量的非重叠工作,就像您选择一个较晚完成的工作它不会给您更好的答案,因为可能有一个工作从 job1 完成到 job2 完成之间的时间开始,如果您选择 job2,您将无法添加该作业

    【讨论】:

    • 谢谢!所以你的意思是在这个问题中,目标是最大化选择的工作总数,而不是总工作时间?我认为演员的工资是由总工作时间决定的,所以目标是找到最大化工作时间的工作组合。
    • @ZheDang 这里的输出是最大的子集,这意味着包含最多电影的子集,这就是为什么如果你想最大化总工作时间,这个解决方案可以工作,这是一个完全不同的问题,不会使用上述算法工作
    猜你喜欢
    • 2020-11-25
    • 2013-01-28
    • 2016-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-23
    • 1970-01-01
    • 2021-06-21
    相关资源
    最近更新 更多