//无向图的二分图判断
#include<cstdio>
#include<vector>
#include<cstring>
using namespace std;
const int maxn=1000+5;
int n;//图节点数
vector<int> G[maxn];//G[i]表示i节点邻接的点
int color[maxn];//color[i]=0,1,2 表i节点 不涂颜色 涂白色 涂黑色
//判断无向图是否可二分
bool bipartite(int u)
{
for(int i=0;i<G[u].size();i++)
{
int v=G[u][i];
if(color[v]==color[u]) return false;
if(!color[v])
{
color[v]=3-color[u];
if(!bipartite(v)) return false;
}
}
return true;
}
二分图的判定
猜你喜欢
转载自blog.csdn.net/qq_40859951/article/details/84898818
今日推荐
周排行