SDUT3364数据结构实验之图论八:欧拉回路

来源:互联网 发布:python marionette 编辑:程序博客网 时间:2024/05/22 07:54
#include<bits/stdc++.h>using namespace std;int uf[1050];int de[1005];int find0(int x){    int r=x;    while(uf[r]!=r)        r=uf[r];    int i=x,j;    while(i!=r)    {        j=uf[i];        uf[i]=r;        i=j;    }    return r;}int union0(int x,int y){    int rx=find0(x),ry=find0(y);    if(rx!=ry)        uf[rx]=ry;}int ju(int v){    int root=0;    for(int i=1; i<=v; i++)        if(uf[i]==i)            root++;    if(root!=1)        return 0;    for(int i=1; i<=v; i++)        if(de[i]%2==1)            return 0;    return 1;}int main(){    int T;    scanf("%d",&T);    while(T--)    {        int v,e;        scanf("%d%d",&v,&e);        for(int i=1; i<=v; i++)            uf[i]=i;        memset(de,0,sizeof(de));        for(int i=0; i<e; i++)        {            int v1,v2;            scanf("%d%d",&v1,&v2);            union0(v1,v2);            de[v1]++;            de[v2]++;        }        if(ju(v))printf("1\n");        else printf("0\n");    }}

0 0