n个男孩和 m m个女孩去旅游,已知每个男孩的身高 h i h i 和每个女孩的身高 g i g i ,先要求给每个男孩分配一个女孩。 一个男孩得到的匹配值为:该男孩和分配到的女孩身高作差的绝对值,即 a b s ( h i − g i ) abs(h i −g i ) 现在求所有男孩匹配值和的最小值。 注意:一个女生可以与多名男生匹配。
时间: 2024-02-26 22:54:32 浏览: 18
给定n种物品和一个背包
5星 · 资源好评率100%
这个问题可以用匈牙利算法求解。
首先建图,左边是所有男孩,右边是所有女孩,如果一个男孩和一个女孩身高差的绝对值小于等于某个阈值,则在他们之间连一条边,边权为两人身高差的绝对值。
然后按照匈牙利算法的流程,不断寻找增广路,直到无法找到为止。每次找到增广路后更新匹配,并且更新最小权值和。
最后得到的最小权值和即为所有男孩匹配值和的最小值。
阅读全文