HU-188-ユーラシックバック路
1100 ワード
HU-188-ユーラシックバック路
http://acm.hdu.edu.cn/showproblem.php?pid=1878
図Gの1つの回路は、Gのそれぞれの辺を通りますと、この回路はヨーバック路と呼ばれています。
一つの方向図がない場合は、Eultureがあり、図のすべての頂点の度数が偶数であり、図は連通図である。
http://acm.hdu.edu.cn/showproblem.php?pid=1878
図Gの1つの回路は、Gのそれぞれの辺を通りますと、この回路はヨーバック路と呼ばれています。
一つの方向図がない場合は、Eultureがあり、図のすべての頂点の度数が偶数であり、図は連通図である。
#include
#include
#include
int n,m;
int visit[1002],f[1002];
void init()
{
int i;
for(i=1;i<=n;i++)
f[i]=i;
}
int find(int x)
{
int r=x;
while(f[r]!=r)
r=f[r];
f[x]=r;
return r;
}
void Union(int x,int y)
{
int fx,fy;
fx=find(x);
fy=find(y);
if(fx!=fy)
f[fx]=fy;
}
int main()
{
int a,b,i;
int ans,flag;
while(scanf("%d",&n),n)
{
scanf("%d",&m);
memset(visit,0,sizeof(visit));
init();
ans=0;
while(m--)
{
scanf("%d %d",&a,&b);
visit[a]++;
visit[b]++;
Union(a,b);
}
for(i=1;i<=n;i++)
if(f[i]==i)
ans++;
if(ans==1)
{
flag=1;
for(i=1;i<=n;i++)
if(visit[i]%2==1)
{
flag=0;
break;
}
if(flag==1)
printf("1
");
else
printf("0
");
}
else
printf("0
");
}
return 0;
}