图论 欧拉回路 uva10054

来源:互联网 发布:java 系统当前时间 编辑:程序博客网 时间:2024/05/16 23:33

无向图的欧拉回路判断两个条件

1.所有的点的度为偶数

2.满足1的条件下,所给的图连通

#include <iostream>#include <cstring>#include <cstdio>using namespace std;typedef long long ll;int G[1005][1005],d[1005];void eular(int x){   int i;   for(i=1;i<=50;i++)   {      if(G[x][i])      {         G[x][i]--;         G[i][x]--;         eular(i);         printf("%d %d\n",i,x);      }   }}int main(){   int t,x,y,i,kase=0,n;   bool f;   scanf("%d",&t);   while(t--)   {      kase++;      memset(G,0,sizeof(G));      memset(d,0,sizeof(d));      f=true;      scanf("%d",&n);      for(i=0;i<n;i++)      {         scanf("%d%d",&x,&y);         d[x]++;         d[y]++;         G[x][y]++;         G[y][x]++;      }      for(i=1;i<=50;i++)      {         if(d[i]&1) {f=false;break;}      }      printf("Case #%d\n",kase);      if(f)      {         for(i=1;i<=50;i++) eular(i);      }      else printf("some beads may be lost\n");      if(t!=0)printf("\n");   }   return 0;}



0 0
原创粉丝点击