【发布时间】:2015-06-03 00:38:05
【问题描述】:
我试图想出一种算法,它总是在最好的时间内产生这个问题的最佳解决方案:
有n 的职位候选人和k 房间,他们在一天中的不同时间安排了面试。每个房间的面试都有特定的时间表,每个面试都有指定的开始时间(si),结束时间(fi)和面试室(r我)。所有时间单位总是整数。此外,我们需要安排全天与当前正在接受采访的人的合影。这些照片实际上并不需要任何时间,但在一天中的某个时间点,每个受访者都必须在照片中。如果我们在t 的时间安排一张照片,那么目前正在接受采访的所有人都会在这张照片中。拍照对其余每个采访的开始和结束时间没有影响。所以问题是这样的:一个无序列表的采访,每个都有变量(si,fi,ri),怎么办您确保每个面试候选人都在照片中,同时尽可能少地拍照?
所以理想情况下,我们会在尽可能多的人在场时拍照,以尽量减少拍照的数量。我最初的想法是一种蛮力,但这将是一个非常糟糕的 big-O 运行时。在返回尽可能少的照片的同时最小化该算法的运行时间是非常重要的。话虽如此,如果您能想到一个不能完美解决问题的快速贪心算法,我也想听听。
我确信我在这里的描述远非完美,所以如果您希望我澄清任何事情,请随时发表评论,我会回复您。
【问题讨论】:
-
澄清一下,当你拍照时,它包括所有房间的所有受访者?如果是,房间信息是否会以任何方式影响生成的解决方案?
-
@phari 是的。所有房间的所有受访者都在照片中。房间信息在那里,因为有时房间里会有人,有时不会。一个房间不能超过 1 人。因此,如果我们有 5 个房间,那么最多有 5 个人被采访,但可能有 0 个。这是否回答了您的问题?
标签: algorithm dynamic-programming greedy divide-and-conquer