#THU20231B. 粽子树

    ID: 214 Type: Default 2000ms 512MiB Tried: 3 Accepted: 1 Difficulty: 3 Uploaded By: Tags>清华推研机试环境测试考研图结构搜索DFS数据结构其他离散化

粽子树

时间限制: 1.0 秒 2.0 秒

空间限制: 512 MB

题目描述

小粽有一棵粽子树。这棵树有 nn 个结点,编号依次为 11nn,根节点的编号为 nn。这棵树的每个点都会结出一个粽子。第 ii 个点的粽子种类可以用一个整数 aia_i 表示。

小粽没事的时候喜欢爬树玩耍。这天,小粽想到了一个问题:对于任意的点 ii,如何求出 ii 到根节点简单路径上不同粽子的种类数呢?

这个问题对小粽来说太难了,你能帮她算出来吗?

输入格式

从标准输入读入数据。

输入第一行为一个整数,表示树的节点数目。

接下来 n1n-1 行,每行两个整数 u,vu,v,表示树上编号为 u,vu,v 的两点之间存在一条边。

接下来一行输入 nn 个整数,第 ii 个数为 aia_i,表示编号为 ii 的节点上结出的粽子的种类。

输出格式

输出到标准输出。

输出一行,包含 nn 个正整数,第 ii 个数表示编号为 ii 的点到根的路径上不同粽子的种类数。相邻两个数之间用一个空格分隔。

3
3 1
3 2
1 2 1
1 2 1

子任务

对于 20%20\% 的数据,1n102,1ai1021\le n\le 10^2, 1\le a_i\le 10^2

对于 50%50\% 的数据,1n103,1ai1031\le n \le 10^3,1\le a_i\le 10^3

对于 80%80\% 的数据,1n105,1ai1051\le n\le 10^5,1\le a_i\le 10^5

对于 100%100\% 的数据,1n106,2147483648ai21474836471\le n\le 10^6,-2147483648\le a_i\le 2147483647