sgu 172 eXam 二分图染色
来源:互联网 发布:淘宝保存的草稿在哪里 编辑:程序博客网 时间:2024/05/18 13:26
按读入建图,dfs的时候,如果相邻的点已经有颜色并且和当前点的颜色相同,那么一定无解,否则染上不同与当前点的颜色继续dfs就行,注意考虑多个联通量的问题...
#include <iostream>#include <cstdio>#include <algorithm>#include <cmath>#include <string>#include <cstring>#include <cmath>#include <queue>#include <stack>using namespace std;typedef long long ll;bool g[220][220];int col[220];int n,m,p,q,k;bool flag;void dfs(int u,int t){ for (int i=1; i<=n; i++) if (g[u][i] && i!=u) { if (col[i]==-1) { col[i]=t^1; dfs(i,t^1); } else if (col[i]==t) { flag=false; return; } if (!flag) return; }}int main(){// freopen("in.txt","r",stdin); memset(g,false,sizeof g); scanf("%d%d",&n,&m); int x,y; for (int i=1; i<=m; i++) { scanf("%d%d",&x,&y); g[x][y]=g[y][x]=true; } memset(col,-1,sizeof col); flag=true; for (int i=1; i<=n; i++) if (col[i]==-1) { col[i]=0; dfs(i,0); } if (flag) { puts("yes"); int ans=0; for (int i=1; i<=n; i++) if (!col[i]) ans++; printf("%d\n",ans); for (int i=1; i<=n; i++) if (!col[i]) printf("%d ",i); puts(""); } else puts("no"); return 0;}
- sgu 172 eXam 二分图染色
- sgu172:eXam(二分图染色)
- sgu 172 eXam
- SGU 172(判定二分图)
- 二分图染色模板
- 二分图染色
- 二分图染色模板
- 【模板】二分图染色
- 二分图染色问题
- zoj1462 二分图染色+DP
- uva10004 Bicoloring 二分图染色
- 二分图判定(染色法)
- hdu 5285 二分图+染色
- 二分图+染色 poj 2492
- 二分图的判断--染色
- 【学习记录】二分图染色
- zoj 3370(二分+二分图染色)
- [NOIP2010]关押罪犯(二分+二分图染色)
- stl
- 通过Ip查询登录地址
- c++学习笔记(6.类的封装)
- Eclipse引入JDK源代码
- UNICODE中的格式化
- sgu 172 eXam 二分图染色
- 各大语言概述
- C语言中的左值和右值
- POJ1833:排列
- linux 里的一些英文缩写含义
- try...catch...finally中try块发生的事件顺序
- Form中调用请求
- 总账
- android多lib库工程的自动批量构建–linux shell简介