#include <iostream>
#include<vector>
#Include<cstring>
using namespace std;
vector<int> m[100005];
int a[100005];
void f(int k)
{ for(int i=0;i<m[k].size();i++)
{
if(a[m[k][i]]==0)
{ a[m[k][i]]=k;
f(m[k][i]);
}
}
}
int main(void)
{
int t,n,k,i,x,y;
cin>>t;
while(t--)
{ memset(a,0,sizeof(a));
memset(m,0,sizeof(m));
i=1; cin>>n>>k;
while(i<n)
{
cin>>x>>y;
m[x].push_back(y);
m[y].push_back(x);
i++;
}
a[k]=-1;
f(k);
for(i=1;i<n;i++)
cout<<a[i]<<" ";
cout<<a[i]<<endl;
}
}
nyist 吝啬的国度(二维vector搜索)
最新推荐文章于 2018-04-11 16:17:16 发布
本文介绍了一种基于C++实现的图遍历算法,通过递归函数完成从指定节点开始的整个图的遍历,并为每个节点标记父节点,便于追踪路径。适用于理解图的基本操作及递归算法的应用。
453

被折叠的 条评论
为什么被折叠?



