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;}


原创粉丝点击