10004UVa二染色

#include
#include
int node[200];
int gra[200][200];
int n,e;
bool dfs(int u,int pre)
{
	node[u]=-pre;
	for(int v = 0; v < n;v++)
	{
		if(gra[u][v])
		{
			if(node[v]&& node[v] == node[u]) 
				return false;
			if(!node[v] && dfs(v,node[u]) == false)
				return false;
		}
	}
	return true;
}
int main()
{
	//
	freopen("input.txt","r",stdin);
	while(scanf("%d",&n)==1 && n)
	{
		memset(node,0,sizeof(node));
		memset(gra,0,sizeof(gra));
		scanf("%d",&e);
		for(int i = 0; i < e;i++)
		{
			int u,v;
			scanf("%d%d",&u,&v);
			gra[u][v]=1;
			gra[v][u]=1;
		}
		if(dfs(0,-1))
			printf("BICOLORABLE.\n");
		else
			printf("NOT BICOLORABLE.\n");
	}
}

你可能感兴趣的:(UVa简单2017)