【发布时间】:2016-04-26 18:05:49
【问题描述】:
我正在尝试使用动态编程来解决这个问题,但我不知道如何定义子问题以及它们之间的关系。
所以它与常规活动选择问题基本相同,只是您有两种类型的活动(我们称它们为黄色和灰色),因此每个活动都有开始时间结束时间和颜色。 黄色活动的优先级高于灰色活动,因此如果黄色活动与 2 个灰色活动重叠,黄色活动将进入解决方案,而灰色活动不会。
谢谢。
【问题讨论】:
-
将它们分成 2 个集合,尝试从 Grays 中选择 2 个,从 Yellows 中选择 1 个,就像您对常规选择问题所做的那样,比较 -> 获取新时间戳 -> 删除无效活动(从两个集合中)跨度>
-
准确地说:如果黄色活动与 3 个灰色活动重叠怎么办?如果单个黄色活动与 1000 个不重叠的灰色活动重叠怎么办——我们仍然选择 1 个黄色而不是 1000 个灰色吗?
-
将选择一个黄色活动而不是任何数量的非重叠灰色活动。 @j_random_hacker
标签: algorithm dynamic-programming