UVa 11396 - Claw Decomposition(二分图判定,染色法,dfs)
2013-09-07 23:07
387 查看
可推知,该图必为一二分图,然后分两部分着色,用dfs可以实现
之前用了一种方法,每访问一个点加入删除它所在的所有边,然后标记与边相连的所有点,不知为什么错误了,望高手指点
以下是AC代码
之前用了一种方法,每访问一个点加入删除它所在的所有边,然后标记与边相连的所有点,不知为什么错误了,望高手指点
以下是AC代码
#include <stdio.h> #include <string.h> #include <vector> #define maxn 305 using namespace std; vector<int> G[maxn]; int vis[maxn]; bool dfs(int u,bool f) { if(vis[u]>=0) { if(vis[u]==f) return true; else return false; } vis[u]=f; for(int i=0;i<3;i++) { if(!dfs(G[u][i],f^1)) return false; } return true; } int main() { int v,x,y; while(scanf("%d",&v)==1) { if(!v)break; for(int i=0;i<v;i++) G[i].clear(); memset(vis,-1,sizeof(vis)); while(scanf("%d%d",&x,&y)==2) { if(!x&&!y)break; x--;y--; G[x].push_back(y); G[y].push_back(x); } if(dfs(0,1)) { printf("YES\n"); } else { printf("NO\n"); } } return 0; }
相关文章推荐
- Uva 11396 Claw Decomposition __二分图判定__C__
- UVa - 11396 Claw Decomposition 二分图的判定
- UVA - 11396 Claw Decomposition(二分图染色)
- UVA - 11396 Claw Decomposition(二分图染色)
- uva 11396 - Claw Decomposition(二分图判定)
- uva 11396 - Claw Decomposition(二分图判定)
- UVA 11396 - Claw Decomposition(二分图判定)
- uva 11396 Claw Decomposition(二分图判定 BFS)
- UVA11396-Claw Decomposition(二分图判定)
- UVA 11396:Claw Decomposition(二分图判定)
- UVA-11396 Claw Decomposition (二分图判定)
- uva 11396 Claw Decomposition 二分图判定
- UVA 11396 Claw Decomposition(二分图)
- UVA-11396 - Claw Decomposition(DFS)
- Uva 11396 Claw Decomposition(二分图判断)
- UVA 11396 Claw Decomposition 染色
- UVA 11396 Claw Decomposition(二分图判断)
- UVa-11396 Claw Decomposition(二分图判断)
- UVA11396 Claw Decomposition
- UVa11396 - Claw Decomposition