题意:给出一幅无向图,用每条边的编号及其两个端点编号描述,求无向图的欧拉回路,按字典序最小的边的编号输出;
思路:若存在度数为奇数的点,则欧拉回路不存在;dfs求欧拉回路;
#include#include #include #define maxn 2000#define maxm 50using namespace std;struct node{ int s,t;}r[maxn];bool vis[maxn];int deg[maxm],s[maxn];//节点的度deg[],边序列s[]int n,S,stop; //边数n,节点的最小编号S,欧拉回路的边数stopbool exist() //若存在度数为奇数的节点,则返回0,不存在欧拉回路;{ for(int i=1;i =2;i--) printf("%d ",s[i]); printf("%d\n",s[1]); } else printf("Round trip does not exist.\n"); } return 0;}