【问题标题】:SPOJ - Aggressive cows, what is the meaning of "largest minimum distance" terminology?SPOJ - 好斗的奶牛,“最大最小距离”术语的含义是什么?
【发布时间】:2018-11-20 19:52:09
【问题描述】:

我正在尝试了解 Spoj 中 AGGRCOW - Aggressive cows 的问题。但是这个输出是怎么来的,我不明白。首先我想也许他们之间的距离就像这个输入:

Input:
5 3 
1 2 4 8 9

输出:3

首先我们将cow1 放在arr[0] 位置,然后将cow2 放在arr[2] 中。我们不会将cow2 放在arr1 中,因为这样它们之间就没有距离了(2-1=1)。现在cow2 和cow1 的距离是3 个单位。因此,我们将cow2 放在arr[2] 中。最后我们把cow3放在arr[3]中,因为cow3和cow2之间的距离在这里是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?我只想要这个问题的解释,而不是代码。

【问题讨论】:

    标签: c arrays binary-search


    【解决方案1】:

    问题是你有 N 个摊位位置,a0aN-1。您必须填写其中的 C,但要使已填写的摊位编号之间的间隔尽可能高。输出是所有填充的摊位实现的分离。也就是说,如果你输出 3,这意味着你的解决方案说 “我可以填充档位,因此任何两个填充档位之间的距离至少为 3”

    如果您考虑一下,您实际上是在查看任何两个已填满的摊位之间的最小距离,并且您正在尝试最大化它,而不会影响到任何其他已填满的摊位的距离。因此:最大最小距离。

    输入的格式

    N C
    a0a1 ... aN-2aN-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。

    【讨论】:

    • 假设,n = 5,c = 3。档位为 8、12、15、17、20。 o/p 是 5。让奶牛保持在 8、12、17 这些位置可以得到 8-12 = 4 和 17-12 = 5,但是为什么我们这里仍然选择 5?
    • 好吧,我的理解是,首先我必须找出最佳位置,然后从这些位置开始我必须采取最小距离。对吗?
    • @WinnieA:不,你把奶牛放在 8、15 和 20 号;所以间隔是 15-8 = 7 和 20 - 15 = 5。
    • 当你选择位置时,你试图让每个使用过的隔间尽可能远离其他隔间,同时考虑所有使用过的隔间。您需要选择一组让您说“已使用的摊位编号之间至少有L”的摊位,其中最大的L是你可以管理的;然后输出 L.
    • @NominalAnimal 好的,知道了。你的意思是最佳位置
    【解决方案2】:

    在 6 3, 2 3 4 5 8 9 的情况下,奶牛可以放在 2、5 和 8 中,产生最小距离 3。即大于 2 的最小值,所以 2 不是最大的最低限度。

    【讨论】:

    • 对不起,我不明白,你说的最小 2 大是什么意思?
    • @WinnieA:如果你把奶牛放在2、5和8,它们之间的最小距离是3。如果你把奶牛放在2、4和8,它们之间的最小距离是 2。问题要求最大最小值。 3 大于 2。
    【解决方案3】:

    为了防止奶牛互相伤害,FJ 想将奶牛分配到隔间,使任意两头之间的最小距离尽可能大。

    FJ 必须让奶牛彼此之间尽可能远离 - 该设置中两头奶牛/摊位位置之间的距离是最大的最小距离。

    在给定的畜栏位置和给定的奶牛数量中,您必须选择畜栏位置,以使所有奶牛都被安置在彼此最远的畜栏内(最小距离是两个畜栏位置之间的距离你在哪里分配给定的奶牛)。该设置中两个最近的摊位之间的距离是最大的最小距离。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-03
      • 1970-01-01
      • 2023-03-22
      • 2020-10-09
      • 1970-01-01
      • 2019-02-26
      相关资源
      最近更新 更多