文章目录
二分图匹配
一、前置芝士
- 图论
- 二分图(下面会讲)
二、二分图
定义
设 G = ( V , E ) G=(V,E) G=(V,E)是一个无向图,如果顶点 V V V可分割为两个互不相交的子集 ( A , B ) (A,B) (A,B),并且图中的每条边 ( i , j ) (i,j) (i,j)所关联的两个顶点 i i i和 j j j分别属于这两个不同的顶点集,则称图 G G G为一个二分图。学过高中数学的
话应该能看懂我在说什么逃
更简单的定义
顶点集 V V V可分割为两个互不相交的子集,并且图中每条边依附的两个顶点都分属于这两个互不相交的子集,两个子集内的顶点不相邻。满足这样的图就叫二分图。
还是看不懂???来一张图
图中有两个点集,点集A、B相互连边,内部不连边的图即为二分图。
二分图的判定
考虑黑白染色 (不懂的可以问度娘),如果能染色即为二分图
三、二分图匹配
匈牙利算法
本质:反悔贪心
枚举子集A中还没有匹配的点,设此点为 u i u_i ui,将它连向的点设为 v i v_i vi,看 是否已经和某一个 u j u_j uj匹配。
- 若不是,则:直接将 u i u_i ui和 v i v_i v