鎏雨溪 @ 2017-11-25 22:50:53
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int m,u,v,num[520],g[520][520],ans[1300],len,maxi,mini;
void dfs(int i){
for(int k=mini;k<=maxi;k++){
if(g[k][i]){
g[i][k]--;
g[k][i]--;
dfs(k);
}
}
ans[++len]=i;
}
int main(){
int i,j,start;
scanf("%d",&m);
while(m--){
scanf("%d%d",&u,&v);
g[u][v]=g[v][u]=1;
++num[u];++num[v];
maxi=max(max(u,v),maxi);
mini=min(min(u,v),mini);
}
start=1;
for(i=mini;i<=maxi;i++){
if(num[i]&1){
start=i;
break;
}
}
dfs(start);
for(i=len;i>=1;i--){
printf("%d\n",ans[i]);
}
return 0;
}
求助大佬!!!
by 北海_Beihai @ 2018-02-24 14:10:47
有很多重边
by danefishhh @ 2018-07-24 17:06:17
楼上正解 g[u][v]与g[v][u]输入时候+=1而不是=1
by chlchl @ 2022-07-26 21:46:53
草,不看这个帖我是绝对不可能调出来的,阴间题……