欧拉通路和欧拉回路

无向图是否具有欧拉通路或回路的判断:

    欧拉通路:图连通,且图中0个或2个度为奇数的节点。

    欧拉回路:图连通,且图中所有节点的度都为偶数。    


有向图是否具有欧拉通路或回路的判断:

    欧拉通路:图连通,除了两个端点外其他节点的入度等于出度,一个端点入度比出度大1,另一个出度比入度大1;或者所有节点入度等于出度。

    欧拉回路:图连通,所有节点入度等于出度。


链接:https://www.nowcoder.com/acm/contest/86/D

输入描述:

第一行一个数  ,表示有  组数据。对与每组数据,第一行有两个数 ,接下去  行每行两个数  描述一条无向边 。图不保证联通。

输出描述:

对于每组数据,如果存在,输出  ,否则输出  。 
int pre[maxn];
int point[maxn];

void Init(int n){
    for(int i=1;i<=n;i++){
        pre[i]=i;
        point[i]=0;
    }
}

int Find(int x){
    return x==pre[x]? x : pre[x]=Find(pre[x]);
}

void Join(int x,int y){
    int fx=Find(x);
    int fy=Find(y);
    if(fx!=fy){
        pre[fx]=fy;
    }
}

int Judge(int n){
    for(int i=1;i<=n;i++){
        if(Find(1)!=Find(i))
            return 0;
    }
    return 1;
}

void Solve(int n){
    int re=0;
    for(int i=1;i<=n;i++){
        re+=(point[i]%2);
    }
    if(re==2 || re==0)
        printf("Zhen\n");
    else
        printf("Xun\n");
}

猜你喜欢

转载自blog.csdn.net/J__Max/article/details/80087326