您的位置:首页 > 其它

UVA - 10004 Bicoloring

2014-09-11 23:11 295 查看
 

题目:

点击打开链接

#include <iostream>
#include <cstring>
#include <cstdio>
<pre name="code" class="cpp">
#include <algorithm>
#define N 1000
using namespace std;

int vis
;
int a

;
int color
;
int n, m;

int bfs(int u) {
queue <int> q;
q.push(u);
color[u] = 1;
vis[u] = 1;

while (!q.empty()) {
int t = q.front();
q.pop();
for (int i = 0; i < n; i++) if (a[t][i]) {
if (vis[i] == 0) {
vis[i] = 1;
color[i] = !color[t];
q.push(i);
}
else if (color[i] == color[t])
return 0;
}

}

return 1;
}

int main () {
while (scanf("%d",&n) != EOF) {
if (n == 0)
#include <queue>break;memset(vis,0,sizeof(vis));memset(a,0,sizeof(a));scanf("%d",&m);for (int i = 0; i < m; i++) {int u,v;scanf ("%d%d",&u,&v);a[u][v] = a[v][u] = 1;}vis[0] = 1;color[0] = 1;if (bfs(0)) printf("BICOLORABLE.\n");elseprintf("NOT
BICOLORABLE.\n");}return 0;}

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息