比赛 至少完成十道练习 评测结果 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();