UVa 10054 The Necklace(欧拉回路)

来源:互联网 发布:知未的的的意思是什么 编辑:程序博客网 时间:2024/05/04 06:32

题目链接:UVa 10054  The Necklace

对有向图来说,有向图G具有一条单向欧拉回路,当且仅当是连通的,且每个结点入度等于出度。对无向图来说,无向图G具有一条欧拉回路,当且仅当G是连通的,并且所有结点的度数均为偶数。

我还是不明白这个题为什么要逆序输出。。

#include <iostream>#include <cstring>#include <cstdio>using namespace std;const int MAX_N = 50 + 10;int G[MAX_N][MAX_N], p[MAX_N], degree[MAX_N];int _find(int x){    return p[x] == x ? x : (p[x] = _find(p[x]));}void dfs(int u){    for(int v = 0; v < MAX_N; v++)    {        if(G[u][v])        {            G[u][v]--, G[v][u]--;            //printf("%d %d\n", u, v);            dfs(v);            printf("%d %d\n", v, u);        }    }}int n;int main(){    int T, _case = 0;    scanf("%d", &T);    while(T--)    {        scanf("%d", &n);        int u, v, x, y, _beg, _par;        bool flag = true;        memset(G, 0, sizeof(G));        memset(degree, 0, sizeof(degree));        for(int i = 0; i < MAX_N; i++)            p[i] = i;        for(int i = 0; i < n; i++)        {            scanf("%d%d", &u, &v);            G[u][v]++, G[v][u]++;            degree[u]++, degree[v]++;            x = _find(u);            y = _find(v);            if(x != y)                p[x] = y;        }        for(int i = 0; i < MAX_N; i++)        {            if(degree[i])            {                _par = _find(i), _beg = i;                break;            }        }        for(int i = 0; i < MAX_N; i++)        {            if(degree[i])            {                if(_par != _find(i))                {                    flag = false;                    break;                }            }        }        if(flag)        {            for(int i = 0; i < MAX_N; i++)            {                if(degree[i] % 2 != 0)                {                    flag = false;                    break;                }            }        }        if(_case != 0)            printf("\n");        printf("Case #%d\n", ++_case);        if(!flag)            printf("some beads may be lost\n");        else            dfs(_beg);    }    return 0;}


0 0
原创粉丝点击