algorithm - 贪婪的方法在这里有效吗?

标签 algorithm language-agnostic greedy

假设有N组人,M张 table 。我们知道每个组的大小和每个表的容量。我们如何将人与 table 进行匹配,使得同一组的两个人不会坐在同一张 table 上?

贪心法对这个问题有效吗? (贪婪方法的工作原理如下:对于每个表,尝试用来自不同组的人“填充”它)。

最佳答案

假设组和表的大小可能不相等,我认为所描述的贪婪方法行不通(至少在没有附加规范的情况下是行不通的)。假设您有一张 2 T1 的 table 和一张 3 T2 的 table ,以及 3 个组 {A1}、{B1,B2} 和 {C1,C2}。如果我按照你的算法,T1 将收到 {A1,B1},现在你只剩下 T2 和 {B2,C1,C2},这是行不通的。然而,存在解决方案 T1 {B1,C1},T2 {A1,B2,C2}。

我怀疑以下贪婪方法有效:从最大的一组开始,将每个组分配给每张 table 的那个组中的一个人,选择空闲座位最多的第一张 table 。

关于algorithm - 贪婪的方法在这里有效吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8771592/

相关文章:

javascript - 自适应随机化算法

c# - 根据替换可能性生成列表字符串

algorithm - 求解递归 T(n) = T(n/2) + lg n?

language-agnostic - 初始化或构造

algorithm - 找到与所有弧线相交的最小射线数

c++ - OpenMP 实现比串行实现慢

algorithm - 如何轻松记住红黑树的插入和删除?

java - 这个循环体重复了多少次?

oop - 这个反模式的名字是什么?方法签名是个骗子

algorithm - 一棵树中最小顶点覆盖数