二分图(Bipartite Graph)

二分图又称作二部图,是图论中的一种特殊模型。 设 G=(V,E)G=(V,E) 是一个无向图,如果顶点 VV 可分割为两个互不相交的子集 (A,B)(A,B),并且图中的每条边 (i,j)(i,j) 所关联的两个顶点 iijj 分别属于这两个不同的顶点集 (iA,jB)(i \in A,j \in B),则称图 GG 为一个二分图。

如下图,是一个二分图,因为点可以被分成两个点集,且每个集合内的点之间互不相邻(互相之间没有边连接)

在很多情况下,二分图并不像上图一样显而易见,因此需要设计算法来区分一个图是不是二分图。

一个简单的方法是染色法,即从其中一个顶点开始,将跟它邻接的点染成与其不同的颜色,如果邻接的点有相同颜色的,则说明不是二分图。每次用bfs遍历染色即可。

Reference