【发布时间】:2013-01-16 20:03:20
【问题描述】:
我有下一个我很难解决的问题。
我有一条直线,上面有 M 个村庄的列表。我需要在这些村庄中分配 N 个火车站,以便将一个村庄到火车站的平均距离最小化。 示例:
村庄:-----1--------------2--3---------4--5-------- ----6------------7--- 我们有 3 个火车站。
尝试使用动态编程,但做不到。任何人都可以提出解决这个问题的方法吗? (除了尝试所有选项的明显方式)?
【问题讨论】:
-
算法对不同网站的更好解决方案提出质疑——可能是程序员或数学?
-
我在考虑最小生成树,其中节点是村庄,一个节点的边缘是村庄到所有其他村庄的距离,然后你只需设置应该选择多少个节点。
-
@ ks6g10 - 这行不通,我会一直选择我们开始的直线上的 MST
-
@kakush M 和 N 的限制是什么?这似乎是编程竞赛中的一个问题,对于此类竞赛,对输入参数的限制通常可以帮助您计算解决方案的预期内存/时间复杂度。
-
@IvayloStrandjev - 唯一的限制是它们是整数。
标签: algorithm optimization dynamic-programming