1 #include<cstdio>
 2 #include<cstring>
 3 int visited[1000];
 4 int find(int x)
 5 {
 6     if(visited[x]!=x) 
 7         return find(visited[x]);
 8     return x;
 9 }
10 void make(int a,int b)
11 {
12     int f1=find(a);
13     int f2=find(b);
14     if(f1!=f2)
15         visited[f2]=f1;
16 }
17 
18 int main()
19 {
20     int a[1001];
21     int n,m,i,j,x,y;
22     while(scanf("%d",&n)!=EOF&&n)
23     {
24         scanf("%d",&m);
25         int key=1;
26         memset(a,0,sizeof(a));
27         
28         for(i=1;i<=n;i++)
29         {
30             visited[i]=i;
31         }
32         for(i=0;i<m;i++)
33         {
34             scanf("%d %d",&x,&y);
35             make(x,y);
36             a[x]++;
37             a[y]++;
38         }
39         if(m<n-1)
40             printf("0\n");
41         else
42         {
43             
44             int root=find(1);
45             for(i=1;i<=n;i++)
46             {
47                 if(a[i]%2!=0||find(i)!=root)
48                 {
49                     key=0;
50                     break;
51                 }
52             }
53             if(key)
54                 printf("1\n");
55             else
56                 printf("0\n");
57         }
58     }
59     return 0;
60 }
View Code

相关文章: