Algorithm 最小距离算法

Algorithm 最小距离算法,algorithm,distance,partitioning,Algorithm,Distance,Partitioning,我已经在这里阅读了一段时间,但这是我第一次发布,所以如果没有正确标记或其他任何东西,我很抱歉。无论如何,我被困在一个问题上,我在下面解释 在这个问题上,我的工作是安排n个wifi路由器,以最小化任何房子和最近的wifi路由器之间的最长距离。我可以假设这些房屋是在一维空间中布置的。我得到了房屋的位置,作为与初始点的距离,并且这些位置是按排序顺序给出的。此外,我必须在O(m logl)中解决这个问题,其中m是房屋的数量,L是可以给出的最大位置 我曾试图弄明白这一点,但我提出的算法中没有一个能以所需的

我已经在这里阅读了一段时间,但这是我第一次发布,所以如果没有正确标记或其他任何东西,我很抱歉。无论如何,我被困在一个问题上,我在下面解释

在这个问题上,我的工作是安排n个wifi路由器,以最小化任何房子和最近的wifi路由器之间的最长距离。我可以假设这些房屋是在一维空间中布置的。我得到了房屋的位置,作为与初始点的距离,并且这些位置是按排序顺序给出的。此外,我必须在O(m logl)中解决这个问题,其中m是房屋的数量,L是可以给出的最大位置

我曾试图弄明白这一点,但我提出的算法中没有一个能以所需的复杂度来解决它。谢谢你给我关于如何解决这个问题的提示。

这里有一个提示

编写一个
O(m)
函数很容易,该函数可以获取距离的上限,并告诉您所需的路由器的最小数量,以确保没有任何房屋距离路由器超过该距离


现在搜索使用不超过
n
路由器的最大距离。

不依赖
n
?另外,你可以假设WLOG所有的仪表都位于一栋房子或两栋房子的中间。我觉得奇怪的是,它也不依赖于“n”。我意识到日志必须给我一些方法来简化距离,但我无法根据L的复杂性来找出如何做。你可以将路由器放置在离散点还是连续点?@G Bach绑定位置意味着它是离散的。然后我假设日志L来自于对某种形式的中心的二进制搜索,表示到任意m个位置的最大距离最小的点。将一个路由器放在那里,然后在下半部分/上半部分递归;如果还剩下偶数个路由器,则需要为递归的每个步骤考虑两个元素的中心。至少,作为一种方法,这大概是我脑海中浮现出来的,但并没有证明是最优的。复杂性中的m可能来自这样一个事实,即您最多需要m个路由器,因此即使您得到更多路由器,也不会改变复杂性。您正在考虑的算法(如果可能的话)给出了一个解决方案的存在,但没有给出它的实际坐标。我认为他所指的“简单”函数确定了“最小值”通过贪婪地计算路由器的位置,可以返回计数。让我头疼的是贪婪算法是否会错过真正的最小值。你可以用归纳法来解决这个细节。我故意在我的描述中留下作业,因为我认为这是家庭作业。@B你说得对,这是家庭作业问题。谢谢你以一种让我仍然需要做一些工作的方式来回答这个问题。