你有一个"人员列表#34; Lp和另一份"食物" LF。
Lp中的每个元素都需要Lf中的一个或多个元素,但只能接收一个元素。
如何算法决定Lf中的哪个元素给Lp中的每个元素(不需要分配所有Lf也不需要提供给所有Lp)。您正在尝试最大化已分配Lf的Lp数。
答案 0 :(得分:3)
这可以通过将问题建模为图形并求解maximum flow来解决,如下所示:
a
喜欢食物b
,请在 p_a 和 f_b 之间添加边缘。为每个人喜欢的食物做这个。这些边缘中的每一个都具有1的容量。请注意,通过更改边缘的容量,您可以容纳问题陈述的变体。