题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1878
非常基础的欧拉回路问题,如果一个图是连通图且所有点的度数都为偶数,则可以一笔画出,否则不能一笔画出。
#include<stdio.h>
#define maxn 1005
using namespace std;
int fat[maxn],n,m,a,b,n1,dig[maxn];
int find(int x)
{
return x==fat[x]?x:fat[x]=find(fat[x]);
}
int main()
{
while(scanf("%d",&n)&&n)
{
n1=n;
for(int x=0;x<=n;x++)
fat[x]=x,dig[x]=0;
scanf("%d",&m);
while(m--)
{
scanf("%d%d",&a,&b);
int a1=find(a);
int b1=find(b);
if(a1!=b1)
fat[a1]=b1,n1--;
dig[a]++;
dig[b]++;
}
int x;
for(x=1;x<=n;x++)
if(dig[x]%2!=0)
break;
if(x>n&&n1==1)
printf("1\n");
else
printf("0\n");
}
}