#P1127. 【模板】树上启发式合并(子树颜色种类数)

    ID: 139 传统题 1000ms 256MiB 尝试: 0 已通过: 0难度: 提高+/省选− ← 上一题 下一题 → 随机一题 上传者: 标签 模板题 数据结构 深度优先搜索 DFS 树
显示设置

【模板】树上启发式合并(子树颜色种类数)

题目描述

给定一棵 nn 个点的树,点编号 1∼n1\sim n,规定 11 号点为根。每个点被涂上了一种颜色,第 ii 个点的颜色是 cic_i。

对于每个点 uu,请求出以 uu 为根的子树中出现了多少种不同的颜色。

输入格式

第一行一个整数 nn。

第二行 nn 个整数 c1,c2,…,cnc_1,c_2,\dots,c_n,相邻两个整数之间用一个空格隔开。

接下来 n−1n-1 行,每行两个整数 uu 和 vv,表示树上的一条边。

输出格式

一行 nn 个整数,第 uu 个数表示以 uu 为根的子树中不同颜色的种数,相邻两个整数之间用一个空格隔开。

输入输出样例 #1

输入 #1

5
1 1 2 1 2
1 2
2 3
2 4
4 5

输出 #1

2 2 1 2 1

说明

数据规模:1≤n≤2×1051\le n\le 2\times 10^5,1≤ci≤n1\le c_i\le n。