摘要: 问题描述:X集合(编号1~m),Y集合(编号m+1~n)。n,m<100. 给出若干组合(x, y)(相当于映射x->y),问最都能同时有几个组合(分配)。分析:题目可能简化描述得不太好,这显然是一个二分图最大匹配的问题。(二分图)可以用匈牙利算法,或者网络流来求解。这里介绍匈牙利算法。匈牙利算法的核心就是找增广路。不断找增广路,然后更新现有匹配M(M可以看成是X->Y的一个特殊的映射关系),每次更新,都能使匹配数增加一。当找不到增广路时,M就是最大的匹配。算法具体流程:①记X上点为u,Y上点为v。记f[v] 为u->v的映射对应的u,即v的对应点,f[v]=u。(初始 阅读全文