Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C SPOJ——好斗的奶牛,“奶牛”是什么意思;“最大最小距离”;术语_C_Arrays_Binary Search - Fatal编程技术网

C SPOJ——好斗的奶牛,“奶牛”是什么意思;“最大最小距离”;术语

C SPOJ——好斗的奶牛,“奶牛”是什么意思;“最大最小距离”;术语,c,arrays,binary-search,C,Arrays,Binary Search,我在努力理解斯波吉的问题。但我不明白这个输出是怎么来的。首先,我想也许他们之间的距离就像这个输入: 输出:3 首先,我们将cow1置于位置arr[0],然后将cow2置于位置arr[2]。我们不把cow2放在arr中,因为它们之间没有距离(2-1=1)。cow2和cow1的距离现在是3个单位。因此,我们将cow2放入arr[2]。最后我们把cow3放在arr[3]中,因为cow3和cow2之间的距离是4。然后我们比较这3在案例63,234589中,奶牛可以被放在2,5和8中,产生最小距离3。这是

我在努力理解斯波吉的问题。但我不明白这个输出是怎么来的。首先,我想也许他们之间的距离就像这个输入:

输出:3


首先,我们将cow1置于位置arr[0],然后将cow2置于位置arr[2]。我们不把cow2放在arr中,因为它们之间没有距离(2-1=1)。cow2和cow1的距离现在是3个单位。因此,我们将cow2放入arr[2]。最后我们把cow3放在arr[3]中,因为cow3和cow2之间的距离是4。然后我们比较这3在案例63,234589中,奶牛可以被放在2,5和8中,产生最小距离3。这是一个大于2的最小值,因此2不是可能的最大最小值。

问题是,给定了N个失速位置,a0到aN-1。您必须填写其中的C,但要使填写的档位号之间的间隔尽可能高。输出是由所有填充的暂停完成的分离。也就是说,如果您输出3,这意味着您的解决方案说“我可以填充暂停,以便任意两个填充暂停之间的距离至少为3”

如果你想一想,你实际上是在寻找任何两个满摊位之间的最小距离,并且你试图最大化它,而不牺牲到任何其他满摊位的距离。因此:最大最小距离

输入是形式化的

N C
A0A1。。。aN-2和aN-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

为了防止母牛互相伤害,FJ希望将母牛分配到档位,以便任意两个档位之间的最小距离尽可能大

FJ必须将奶牛放在彼此尽可能远的地方——该设置中两个奶牛/畜栏位置之间的距离是最大最小距离


在给定的档位位置和给定数量的奶牛中,您必须选择档位位置,以便所有奶牛都可以安置在彼此距离最远的档位中(最小距离是指定给定奶牛的两个档位位置之间的距离)。在该设置中,最近的两个畜栏之间的距离是最大的最小距离。

对不起,我不明白,你说的最大最小距离2是什么意思?@WinnieA:如果你把奶牛放在2、5和8中,它们之间的最小距离是3。如果将奶牛放在2、4和8中,它们之间的最小距离为2。这个问题要求最大最小值。3大于2。假设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好的,明白了。你是说最佳位置
Input:
5 3 
1 2 4 8 9
Input:
6 3 
2 3 4 5 8 9