10004 - Bicoloring(BFS)
来源:互联网 发布:c语言视频下载 编辑:程序博客网 时间:2024/05/29 04:10
题目:10004 - Bicoloring
题目大意:将给定的图的节点染色,颜色只有两种,并且要求相邻的节点颜色不同,且无向图里面没有自环且是强连通的;
解题思路:因为是强连通的,所以用BFS可以访问到每个节点,并且相邻节点还可以染成不同的颜色。当染色冲突时,就说明这个图不可以二染色,如果顺利的都染色了,没有冲突,这个图就可以二染色。
#include<stdio.h>#include<string.h>#include<queue>using namespace std;int v, e;const int N = 205;int G[N][N], color[N];queue<int> q;int bfs (int t) {color[t] = 1;q.push(t);while(!q.empty()) {t = q.front();q.pop();for(int i = 0; i < v; i++) {if(G[t][i] && !color[i]) {color[i] = - color[t];q.push(i);}else {if(G[t][i]) if(color[i] + color[t] != 0)return 0;}}}return 1;}int main() {while(scanf("%d", &v) , v ) {memset(G, 0, sizeof(G));memset(color, 0, sizeof(color));scanf("%d", &e);int i, x, y;for(i = 0; i < e; i++) {scanf("%d%d", &x, &y);G[x][y] = 1;G[y][x] = 1;}if(bfs(x))printf("BICOLORABLE.\n");elseprintf("NOT BICOLORABLE.\n");while(!q.empty()) {q.pop();}}return 0;}
0 0
- 10004 - Bicoloring(BFS)
- 10004 - Bicoloring//bfs
- UVA - 10004 Bicoloring (dfs和bfs两种解法)
- uva 10004 Bicoloring(DFS)
- 10004 - Bicoloring***
- 10004 - Bicoloring
- 10004--Bicoloring
- UVa Problem 10004 Bicoloring (双着色)
- uva 10004 Bicoloring(并查集)
- UVA - 10004 - Bicoloring(染色问题)
- UVa 10004 Bicoloring
- uva 10004 - Bicoloring
- UVaOJ 10004 - Bicoloring
- UVa 10004 - Bicoloring
- uva 10004 - Bicoloring
- uva 10004 - Bicoloring
- UVa 10004 - Bicoloring
- uva-10004 - Bicoloring
- struts1与struts2的区别
- Python print函数用法,print 格式化输出(python格式化输出)
- 9.文件与文件系统的压缩与打包
- lua语法
- 大神博客
- 10004 - Bicoloring(BFS)
- DICOM学习
- hdu 4396 More lumber is required (二维SPFA)
- 仅用圆规作图(链接)
- 可重用的UIScrollView 模仿UITableView
- Cocos2dx游戏开发笔记21:动手学习《Flappy Bird》之继续优化(付源码)
- 项目经历——解决ScriptManager和UpdatePanel局部刷新以及不弹出对话框问题
- JS精华总结
- sendBroadcast