题目链接
#include<cstring> #include<iostream> #include<algorithm> using namespace std; int mp[1100][1100]; bool vis[2000]; int recd[2000]; int n, m, o, r; void DFS(int s) { vis[s]=1; recd[r++]=s; for(int i=1;i<=n;i++) { if(mp[s][i]&&vis[i]==0) { DFS(i); recd[r++]=s; } } } int main() { ios::sync_with_stdio(false); int t, u, v; cin>>t; while(t--) { cin>>n>>m>>o; memset(vis,0,sizeof(vis)); memset(mp,0,sizeof(mp)); for(int i=0;i<m;i++) { cin>>u>>v; mp[u][v]=mp[v][u]=1; } r=0; DFS(o); for(int i=0;i<r;i++) { if(!i) cout<<recd[i]; else cout<<" "<<recd[i]; } if(r!=2*n-1) cout<<" "<<"0"; cout<<endl; } return 0; }