简介
二分图最大匹配是这样一个问题:给定图 \(G=(V,E)\),存在点集 \(V_1,V_2\) 满足:\(V_1 \bigcap V_2 = \emptyset 且 V_1 \bigcup V_2=V 且\neg \exists u,v \in V_1 使 (u,v)\in E 且 \neg \exists u,v \in V_2 使 (u,v)\in E\)。求至多能选出多少条边的边集 \(E'\) 使得 \(\forall (u_1,v_1),(u_2,v_2)\in E' 且 (u_1,v_1)\ne(u_2,v_2) 使 u_1,v_1,u_2,v_2 互不相同\)。
这里将介绍两种做法。
匈牙利算法
匈牙利算法的流程大致如下:
- 对于每个 \(\in V_1\) 的点 \(u\),看是否存在与其相邻的