本文主要是介绍nyoj-20--吝啬的国度-DFS+vector,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=20
#include<stdio.h>
#include<string.h>
#include<vector>
using namespace std;
vector<int> G[100005];
int s[100005];
int vis[100005];
void dfs(int x)
{for(int i=0;i<G[x].size();i++){if(!s[G[x][i]]){s[G[x][i]]=x;dfs(G[x][i]);}}
}
int main()
{int M,N,SB,a,b,i;scanf("%d",&M);while(M--){scanf("%d%d",&N,&SB);memset(G,0,sizeof(G));memset(s,0,sizeof(s));s[SB]=-1;for(i=1;i<N;i++){scanf("%d%d",&a,&b);G[a].push_back(b);G[b].push_back(a);}dfs(SB);printf("%d",s[1]);for(i=2;i<=N;i++){printf(" %d",s[i]);}printf("\n");}
}
这篇关于nyoj-20--吝啬的国度-DFS+vector的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!