二分图又称作二部图,是图论中的一种特殊模型。 设G=(V,E)是一个无向图,如果顶点V可分割为两个互不相交的子集(A,B),并且图中的每条边(i,j)所关联的两个顶点i和j分别属于这两个不同的顶点集(i in A,j in B),则称图G为一个二分图。 二分图存在两个性质 性质一:一个图如果是二分图,那么这个图一定可以被二染色。 性质二:二分图当且仅当图中不含有奇数环(环的点数为奇数为奇数环)。
代码思路如下: for(int i = 1; i <= n; i++){ if i未被染色: dfs(i,颜色编号); //用深度优先遍历,把i所在的连通块整个染一遍颜色 }