我试图了解Spoj中AGGRCOW - Aggressive cows的问题。但是输出结果如何,我不明白。首先,我想也许他们之间的距离就像这样输入:
Input: 5 3 1 2 4 8 9
输出:3
首先,将cow1放置在arr [0]位置,然后将cow2放置在arr [2]。我们不会将cow2放在arr 1中,因为这样它们之间就不会有距离(2-1 = 1)。 cow2和cow1的距离现在为3个单位。因此,我们将cow2放在了arr [2]中。最后,将Cow3放到arr [3]中,因为cow3和cow2之间的距离在这里4。然后我们比较3 <4。输出3。
但是当我尝试为该输入应用相同的逻辑时
Input: 6 3 2 3 4 5 8 9
输出:3
按照我的逻辑,应该为2。就像将cow1保留在arr [0]中,而将cow2保留在arr [2]中一样,距离为4-2 = 2。这是最低要求。但是当我想通过谷歌搜索看到实际值是多少时,我发现它是3。我不知道它是3。为什么不是2?我只想解释这个问题,而不是代码。
答案 0 :(得分:1)
问题是给您 N 个档位, a 0 到 a < i> N -1 。您必须填充其中的 C ,但要确保填充的档位号之间的距离尽可能高。输出是所有已填充摊位所实现的分隔。也就是说,如果您输出3,则意味着您的解决方案会显示“我可以填充摊位,以便任何两个填充摊位之间的距离至少为3”。
如果您考虑一下,您实际上是在查看任何两个填充摊位之间的最小距离,并且在不影响与其他填充摊位之间的距离的情况下,尝试将其最大化。因此:最大最小距离。
输入的格式为
N C
a 0 a 1 ... a N -2 a N -1
第二个例子是
6 3
2 3 4 5 8 9
表示有6个档位:2、3、4、5、8和9,需要填充其中三个,以保持档位号之间的最大间隔。
最佳解决方案是使用档位2、5和9。然后分隔为5-2 = 3和9-5 = 4,结果是其中最小的3。
答案 1 :(得分:0)
在6 3、2 3 4 5 8 9的情况下,可以将母牛放进2、5和8中,从而产生最小距离3。最小距离大于2,因此2不是最大距离最小可能。
答案 2 :(得分:0)
为防止奶牛相互伤害,FJ希望将奶牛分配给摊位,以使它们之间的最小距离尽可能大。
FJ必须使母牛之间的距离尽可能远-在该设置中,两头母牛/失速位置之间的距离是最大的最小距离。
在给定的档位位置和给定的奶牛数量下,您必须选择档位位置,以使所有的奶牛都被安置在彼此最远离的档位中(最小距离是两个档位之间的距离您分配给定母牛的位置)。该设置中两个最近的档位之间的距离是最大的最小距离。