博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu 1878
阅读量:5068 次
发布时间:2019-06-12

本文共 1348 字,大约阅读时间需要 4 分钟。

题意:就是判断这个图是不是一个欧拉回路的一个题,

思路:我觉得这个题可以用并查集判环加上判断每个点的度就行了

1 #include 
2 #include
3 #include
4 using namespace std; 5 int graph[1005]; 6 int belg[1005]; 7 8 9 int Find(int x)10 {11 int _x=x,_b;12 while( _x != belg[ _x ] )13 _x = belg[ _x ];14 while( x != belg[ x ] )15 {16 _b = belg[ x ];17 belg[ x ] = _x;18 x = _b;19 }20 return _x;21 }22 23 void unio(int x,int y)24 {25 int root1 = Find(x);26 int root2 = Find(y);27 if( root1 != root2 ) belg[root2] = root1;28 }29 30 int main()31 {32 int n,m,a,b;33 while(scanf("%d",&n)&&n)34 {35 int falg = 1,mark;36 scanf("%d",&m);37 memset(graph,false,sizeof(graph));38 for(int i = 1 ; i <= n ; i++)39 belg[i] = i;40 for(int i = 1 ; i <= m ; i++ )41 {42 scanf("%d%d",&a,&b);43 unio(a,b);44 graph[a]++;45 graph[b]++;46 }47 mark = belg[1];48 for(int i = 1 ; i <= n ; i++)49 {50 if(belg[i]!=mark||(graph[i]&1)) {51 falg = 0;52 break;53 }54 }55 if(falg) printf("1\n");56 else printf("0\n");57 }58 }

 

转载于:https://www.cnblogs.com/Tree-dream/p/5981880.html

你可能感兴趣的文章