南阳oj 1015 二分图染色入门

来源:互联网 发布:arstan 软件 制作年表 编辑:程序博客网 时间:2024/06/15 11:10

点击打开题目


最基础的二分图染色,水题不解释了

 #include<stdio.h>#include<string.h>#define maxn 200int color[maxn],vis[maxn];int f[maxn][maxn];int n,m,mark;void clear(){memset(color,0,sizeof(color));memset(f,0,sizeof(f));memset(vis,0,sizeof(vis));mark=color[0]=1;}void dfs(int u){for(int i=0;i<n;i++)if(f[u][i]){if(!vis[i]){color[i]=-color[u];vis[i]=1;dfs(i);}else if(color[i]==color[u]){mark=0;return;}}}int main(){while(~scanf("%d%d",&n,&m)){int i,u,v;clear();for(i=0;i<m;i++){scanf("%d%d",&u,&v);f[u][v]=f[v][u]=1;}dfs(0);if(mark)printf("BICOLORABLE.\n");elseprintf("NOT BICOLORABLE.\n");}}