比赛 |
至少完成十道练习 |
评测结果 |
AAAAAA |
题目名称 |
无根树转有根树 |
最终得分 |
100 |
用户昵称 |
TARDIS |
运行时间 |
0.651 s |
代码语言 |
C++ |
内存使用 |
16.55 MiB |
提交时间 |
2017-05-20 20:33:26 |
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<stack>
#include<queue>
#include<cstring>
#include<deque>
#include<vector>
#define maxn 1000010
#define itn int
#define xlm mylove
using namespace std;
typedef long long LL;typedef unsigned long long ULL;
vector <int> G[maxn];bool visited[maxn];int p[maxn];
int n,root,m,temp,temp1,temp2;
inline void in(){
// freopen("a.in","r",stdin);
freopen("wgs.in","r",stdin);
freopen("wgs.out","w",stdout);
scanf("%d%d",&n,&root);
for (int i=1;i<=n-1;i++){
scanf("%d%d",&temp1,&temp2);
G[temp1].push_back(temp2);
G[temp2].push_back(temp1);
}
}
inline void dfs(int s){
//if (s==to) return;
visited[s]=1;
int num=G[s].size();//if (num==1) return;
for (int i=0;i<num;i++){
int now=G[s][i];
if (!visited[now]){
p[now]=s;
dfs(now);
}
}
}
inline void work(){
memset(visited,0,sizeof(visited));
p[root]=-1;//visited[root]=1;
scanf("%d",&m);
dfs(root);
for (int i=1;i<=m;i++){
scanf("%d",&temp1);
printf("%d ",p[temp1]);
}
}
int Main(){
in();
work();
return 0;
}
int main(){;}
int xlm=Main();