UVA 10004 Bicoloring(DFS染色)
2014-11-13 01:28
423 查看
题意:
给N个点构成的无环无向图,并且保证所有点对都是连通的。
给每个点染色,要么染成黑要么染成白。问是否存在染色方案使得所有有边相连的点对颜色一定不一样。
是输出 BICOLORABLE 否则输出 NOT BICOLORABLE
思路:
从某点开始,直接进行染色,如果矛盾,返回false。
代码:
给N个点构成的无环无向图,并且保证所有点对都是连通的。
给每个点染色,要么染成黑要么染成白。问是否存在染色方案使得所有有边相连的点对颜色一定不一样。
是输出 BICOLORABLE 否则输出 NOT BICOLORABLE
思路:
从某点开始,直接进行染色,如果矛盾,返回false。
代码:
int n,l; vector<int> graph[205]; int color[205]; bool dfs(int u,int fa){ if(color[fa]==0) color[u]=1; else color[u]=0; int L=graph[u].size(); rep(i,0,L-1){ int v=graph[u][i]; if(v!=fa){ if(color[v]==-1) dfs(v,u); else if(color[v]+color[u]!=1) return false; } } return true; } int main(){ int start; while(scanf("%d",&n)!=EOF,n){ scanf("%d",&l); rep(i,0,n-1) graph[i].clear(); mem(color,-1); color =0; while(l--){ int u,v; scanf("%d%d",&u,&v); start=u; graph[u].push_back(v); graph[v].push_back(u); } bool yes=dfs(start,n); if(yes) puts("BICOLORABLE."); else puts("NOT BICOLORABLE."); } }
相关文章推荐
- uva10004 Bicoloring 黑白染色问题,DFS
- uva10004 Bicoloring 黑白染色问题,DFS
- uva 10004 Bicoloring(dfs二分染色,和hdu 4751代码差不多)
- UVA 10004 Bicoloring【DFS简单二部图判定】
- UVa10004 Bicoloring (dfs水题)
- uva 10004 Bicoloring(DFS)
- UVa 10004 Bicoloring(二分图判定+DFS)
- uva 10004 Bicoloring(二染色)
- UVa 10004 Bicoloring (DFS&二分图)
- UVA10004- Bicoloring(二染色)
- UVA - 10004 - Bicoloring(染色问题)
- UVA - 10004 Bicoloring (dfs和bfs两种解法)
- uva 10004 Bicoloring 二染色
- uva 10004 Bicoloring (二分图染色/求一个二分图)
- UVA 10004 - Bicoloring(DFS)
- Bicoloring - UVa 10004 dfs
- uva10004 Bicoloring 二分图染色
- UVA - 10004 Bicoloring
- DFS染色解决区域分块问题UVALive 6663
- UVa 10004 二染色