二分图的相关算法
二分图
本文仅限作者复习,不允许转载,谢谢合作~

一、二分图的判断
- 一张无向图是二分图的充分必要条件是——不存在奇数环。
- 一张无向图是二分图的充分必要条件是——染色法不产生矛盾。
- 染色法不产生矛盾的充分必要条件是——不产生奇数环。
是二分图、不含奇数环、染色法不产生矛盾三者可互相证明。
二、二分图匹配
定义:
给定一个二分图 \(G\) ,在 \(G\) 的一个子图 \(M\) 中,\(M\) 的边集 \({E}\) 中的任意两条边都不依附于同一个顶点,则称 \(M\) 是一个匹配。
在二分图中包含边数最多的一组匹配称为二分图的最大匹配。
匈牙利算法
”其实很多时候,大家最后悔的时候,其实不是做错了,做错一件事其实是没有多后悔的。最后悔的,其实是错过了一些事,错过了才是最后悔的……“
——yxc
code
for(int i = 1 ; i < n ; i++ )
{
memset(pd , false , sizeof pd ) ;
if( find(i) ) ans++ ;
}
bool find(int u )
{
for(int i = head[u] ; i ; i = ed[i].nxt )
{
int v = ed[i].to ;
if(pd[v] ) continue ;
pd[v] = true ;
if(! hus[v] || find(hus[v] ))
{
hus[v] = u ;
return true ;
}
}
return false ;
}
三、二分图的最小点覆盖


浙公网安备 33010602011771号