UVA 10596 Morning Walk
来源:互联网 发布:西安 国际程序员节 编辑:程序博客网 时间:2024/05/21 15:44
/* 思路: 无向图判断是否存在欧拉回路,条件:1、图是连通的 2、不存在奇点 注意: WA一次,没考虑R=0情况*/#include <cstdio>#include <cstring>const int MAX = 200 + 10;int G[MAX][MAX];int degree[MAX];int visit[MAX];int N,R;void dfs(int u){ visit[u] = 1; for(int v=0; v<N; v++) { if(!visit[v] && G[u][v]) { visit[v] = 1; dfs(v); } }}int main (){ #ifndef ONLINE_JUDGE freopen("in.txt", "r", stdin); #endif while(scanf("%d%d", &N, &R) == 2) { //printf("%d%d", N, R); memset(G, 0, sizeof(G)); memset(degree, 0, sizeof(degree)); memset(visit, 0, sizeof(visit)); int u=-1, v=-1; for(int i=0; i<R; i++) { scanf("%d%d", &u, &v); G[u][v]++; G[v][u]++; degree[u]++; degree[v]++; } bool possible = true; for(int i=0; i<N; i++) { if(degree[i]%2) {possible=false; break;} } if(possible) { if(u!=-1) dfs(u); for(int i=0; i<N; i++) { if(!visit[i]) {possible=false; break;} } } if(possible) printf("Possible\n"); else printf("Not Possible\n"); } return 0;}