有一组9个学生和3所学校,每所学校最多可以分配3名学生。每所学校和学生都有它们的坐标。现在我们必须分配学生,以便所有学生到学校的距离之和最小。我在面试中被问到这个问题。有人能为此提供一个算法吗?最初我尝试了贪心方法,但并不起作用。然后我尝试应用动态编程方法,但无法想出最优子结构。
如果问题规模足够小,尝试使用穷举搜索怎么样? 第一所学校从9名学生中选择3名开始。 第二所学校从剩下的6名学生中选择3名。 最后一所学校只能选剩下的3名学生。 因此,(9选3) * (6选3) = 1680