【发布时间】:2017-06-23 16:01:13
【问题描述】:
假设输入被指定为一组建筑物对象,其中每栋建筑物都有一定数量的居民及其与街道起点的距离。
总距离 = SUM(距离[i] * #residents[i])
我在这里发现了两个相似但要求略有不同的问题:
Minimizing weighted sum:这道题的解法是找到穿越所有点的最小路径。在这里,我正在寻找从每个建筑物到邮箱所在位置的总距离的最小总和。
Minimum Total Distance From Locations:它使用二维坐标,更重要的是,该解决方案没有考虑每个位置的权重(居民数量)。
我在阅读 Elements of Programming Interviews(非常好的书,顺便说一句)时看到了这个问题,这被列为快速选择算法的一种变体。考虑到中位数是最小化距离总和的点,看起来解决方案将涉及快速选择以在 O(N) 中找到位于街道“中位数”位置的建筑物。
但我无法弄清楚如何计算每栋建筑物的居民并仍然保持解决方案线性。
【问题讨论】:
-
那么邮箱当前是否存在于街道的起点,或者您想找到一个点,如果我们放置邮箱会减少与其他点的距离?
-
能否发给我这个问题的链接或者告诉我该问题在书中的页码
-
@zenwraight 当然,它的第二个选项,找到一个放置邮箱的地方。在书中,问题是问题 12.9 的最后一个变体 - 找到最大的 kth(我的第 201 页)复制)。我认为谷歌图书预览搜索显示该页面:google.com/…
-
提示:你想找到一个邮箱位置,每边都有___人。
标签: algorithm linear-programming