间隔调度算法或活动选择算法

帕拉格·柳吉

我一直在努力解决这个问题。

有n个人想要在酒店同一个房间。每个人都希望在自己方便的时间停留在酒店内,但一次只能住一个人。假设房间从上午5点到晚上11点可用。酒店经理从那个房间里的每个人那里收取500卢比。一个人在那个房间里待多久都没关系。我们必须最大化经理的利润。让我们说n = 4,即四个人想要同一个房间。假设第一个人想要从上午6点至8点的房间,第二个人想要从上午7点至8AM的房间,第三个人想要从上午8点至12PM的房间,第四个人想要从上午11点至1PM的房间。

在此处输入图片说明

通过观察上图,我们可以轻松地看到经理最多只能允许两个人留下(第一和第三或第一和第四或第二和第三或第二和第四)。因此,他可以获得的最大利润是500 + 500 = 1000卢比。因此,我们必须实现可以找到最大利润值的算法。假设人们只想在早上5点至晚上11点左右的房间,而每个人都希望在几个小时内找到房间。

输入说明:

{<第一人称开始时间>#<第一人称结束时间>,<第二人称开始时间>#<第二人称结束时间>,…………,#}

输出说明:

输出应为最大利润值。
对于问题中考虑的示例,输出为2000。

例子:

输入:
{6 AM#8AM、11AM#1PM、7AM#3PM、7AM#10AM、10AM#12PM、2PM#4PM、1PM#4PM、8AM#9AM}

产量:
2000

用户名

看起来像“活动选择问题”的变体。

阅读此《TopCoder教程》以获得出色的解释。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章