#include <iostream>
#include <vector>
#include <cstring>
#include <queue>
using namespace std;
void bfs();
struct data
{
int vis;
int f;
};
vector<int> g[100010];
int n;
int s;
data a[100010];
queue<int> q;
int main()
{
int T;
cin >> T;
while(T--)
{
cin >> n >> s;
for(int i = 1; i <= n; i++)
g[i].clear();
for(int i = 1; i < n; i++)
{
int a, b;
cin >> a >> b;
g[a].push_back(b);
g[b].push_back(a);
}
memset(a, 0, sizeof(a));
bfs();
for(int i = 1; i <= n; i++)
{
if(i == 1)
cout << a[i].f;
else
cout << ' ' << a[i].f;
}
cout << '\n';
}
}
void bfs()
{
int t;
a[s].f = -1;
a[s].vis = 1;
q.push(s);
while(!q.empty())
{
t = q.front();
q.pop();
for(int i = 0; i < g[t].size(); i++)
{
if(a[g[t][i]].vis == 0)
{
q.push(g[t][i]);
a[g[t][i]].vis = 1;
a[g[t][i]].f = t;
}
}
}
}
南阳理工OJ_题目20 吝啬的国度
最新推荐文章于 2017-08-23 20:58:14 发布