贪心 - 远处定位小屋

时间:2015-03-02 05:11:04

标签: algorithm greedy

一个机构想要在路上找到箱子。我们在路上有小屋。每间小屋都有自己的盒子。每个小屋的盒子都存在于这条道路上的英里,x_1,x_2,...,x_n(这些值可以假定为记录距离指定原点的英里距离的不同整数)。我们的目标是尽量减少箱子的数量,同时确保没有小屋距离最近/最近的箱子K里程。

直觉:对于这个贪婪的算法,我想按一定的顺序一次看一个小屋,并选择(一些贪婪的选择)选择盒子的位置。我想我应该先做的是对小屋的位置进行排序。但我正在努力应对贪婪的选择。

1 个答案:

答案 0 :(得分:0)

假设x_i是道路上小屋的距离(而不是箱子的位置,因为它们没有给出并且应该被发现)。不失一般性,x_i被排序。然后将第一个方框放在沿路的距离x_1 + K处。这必须是最佳的,因为在距离x_1的距离K内必须有一个方框,无论你把它放在哪里,它都不能提供更多的小屋,而不是最远离x_1的小屋(因为那里&#39) ;在x_1之前没有别墅。

继续...让a_1成为第一个不在距离框K的距离K内的小屋,并将第二个框放在距离道路的距离x_ {a_1} + K处。

一般情况下,如果您已经放置了i个盒子,那么让a_i成为第一个不在距离盒子的距离K内的房子,并将盒子i + 1放在距离x_ {a_i} + K的位置这条路。