题目链接点击:HihoCoder-1181
题目简介:
给你一些数如下:在上一回中小Hi和小Ho控制着主角收集了分散在各个木桥上的道具,这些道具其实是一块一块骨牌。
然后首尾相连如下;
#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e3+5;
int n,m,i,j,a,b;
int path[5005],cnt;
vector<int > vec[maxn];
void dfs(int u)
{
int d;
while((d = vec[u].size() ) > 0)
{
int v = vec[u][0]; //取第一位
vec[u].erase(vec[u].begin() ); //然后删除
int l = vec[v].size();
for(i = 0; i < l; i++)
if(vec[v][i] == u)
{
vec[v].erase(vec[v].begin()+i); //同样删除vec[v]里面的u
break;
}
dfs(v);
}
path[cnt++] = u;
}
int main()
{
while(scanf("%d%d",&n,&m) != EOF)
{
for(int i = 0; i < m; i++)
{
scanf("%d %d",&a,&b);
vec[a].push_back(b);
vec[b].push_back(a);
}
cnt = 0;
int start = 1;
while(!vec[start].size())
start++; //找到第一个有邻边的点
dfs(start);
for(i = 0; i < cnt-1; i++)
printf("%d ",path[i]);
printf("%d\n",path[cnt-1]);
}
return 0;
}