最小距离

时间:2012-11-12 18:14:46

标签: algorithm

有一组9名学生和3所学校每个学校最多可以分配3名学生。每个学校和学生都有自己的坐标。现在我们必须以这样一种方式分配学生,即所有学生的距离总和到学校应该是最小的。

我在接受采访时被问到这个问题。有人可以为此提出一个算法吗?

最初我尝试过贪婪的方法,但这不起作用。然后我尝试应用动态编程方法,但无法提出最佳的子结构。

2 个答案:

答案 0 :(得分:4)

每所学校有3个名额,所有3所学校都有9个名额。你应该找到9个地方和9个学生之间的最佳匹配。

可以使用Hungarian algorithm解决此分配问题。

答案 1 :(得分:1)

由于问题规模足够小,详尽的搜索怎么样?

  • 第一所学校从9名学生中选出3名学生开始。
  • 第二所学校从剩下的6名学生中选出3名学生。
  • 最后一所学校遇到了剩下的3名学生。

所以(9 choose 3) * (6 choose 3) = 1680