uva 10004

来源:互联网 发布:青少年近视调查数据 编辑:程序博客网 时间:2024/05/22 13:42

题意:用两种颜色染色,简单的dfs就可以解决了


#include <iostream>#include <cstdio>#include <cstring>using namespace std;const int maxn = 205;int c[maxn],color[maxn],G[maxn][maxn],n;bool dfs(int u,bool col){c[u] = -1;color[u] = col;for(int v = 0 ; v < n ; v++){if(v != u && G[u][v]){if(c[v] < 0 ){if(color[v] == color[u])return false;}else if(!c[v] && !dfs(v,!col))return false;}}return true;}int main(){int i,j,l;int a,b;while(scanf("%d",&n) == 1 && n){scanf("%d",&l);memset(c,0,sizeof(c));memset(G,0,sizeof(G));memset(color,0,sizeof(color));for( i = 0 ; i < l ;i++){scanf("%d%d",&a,&b);G[a][b] = G[b][a] = 1;}if(!dfs(a,0))printf("NOT BICOLORABLE.\n");else printf("BICOLORABLE.\n");}return 0;}



原创粉丝点击