题解
2024-10-02 10:12:38
发布于:广东
2阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
int n,m,sum,s;
int ans[60];
bool all,flag;
bool a[60][60],vis[60];
void dfs(int k,int cnt){
if(flag==1) return;
ans[cnt]=k;
if(cnt==n&&a[k][s]==1){
for(int i=1;i<=n;i++) cout<<ans[i]<<' ';
flag=1;
return;
}
for(int i=1;i<=n;i++){
if(a[k][i]&&k!=i&&!vis[i]){
vis[i]=1;
dfs(i,cnt+1);
vis[i]=0;
}
}
}
int main(){
scanf("%d",&n);
for(int i=1;i<=2*n-3;i++){
int x,y;
scanf("%d%d",&x,&y);
a[x][y]=1;
a[y][x]=1;
}
for(int i=1;i<=n;i++){
s=i;
vis[i]=1;
dfs(i,1);
}
return 0;
}
这里空空如也
有帮助,赞一个