#iai22a3. 树的问题(一)(Tree Problem Part 1)

    ID: 4221 传统题 1000ms 256MiB 尝试: 0 已通过: 0 难度: (无) 上传者: 标签>树上启发式合并DSU on TreeGESP 7级

树的问题(一)(Tree Problem Part 1)

树的问题(一)(Tree Problem Part 1)

题目描述

给定一棵 nn 个结点的有根树,树根为 11 号点。树上每一个点都有一个属性值,其中第 ii 个点的属性值为 aia_i。若在一棵子树中,某一种属性值出现的次数最多,我们称这种属性值为该子树的主属性值,但由于一棵子树中出现次数最多的属性值可能不唯一,即可能存在多个主属性值。现请你求出,以每一个结点为根的子树中的主属性之和为多少?

例如:下图所示的树中,以 A 为根的子树中,属性值1、2、3各出现一次,即属性值1、2、3均可作为主属性值,则该子树主属性值的和为6。

输入格式

输入共三行:

第一行,一个正整数 nn

第二行,n1n-1 个整数 p2,,pnp_2,\dots,p_n,表示树上 22 号点到 nn 号点各自的父亲编号;

第三行,nn 个整数 aia_i,表示每个点的属性值。

输出格式

输出一行,共 nn 个数字:其中第 ii 个数字,表示 ii 号结点为根的子树的主属性值之和。

样例输入 #1

5
1 1 3 3
4 4 3 1 2

样例输出 #1

4 4 6 1 2

样例输入 #2

5
1 1 3 3
4 4 3 2 2

样例输出 #2

6 4 2 2 2

数据范围

对于 30% 的数据:1n1001 \leq n \leq 100

对于 60% 的数据:1n1041 \leq n \leq 10^4

对于 100% 的数据:1n1051 \leq n \leq 10^51ain1 \leq a_i \leq n

知识点与难度

本题涉及的知识点从属于 GESP 7级(树上启发式合并 / DSU on Tree),难度等级:⭐⭐⭐


测试点分布

Subtask 分值 测试点编号 说明
0 10 1~2 样例
1 20 3~8 小规模 N≤100 / 特殊: 链状 / 特殊: 星形全同值 / 特殊: 全不同值
2 15 9~11 Hack: N=1 / Hack: 深链全同值 / Hack: 星形全不同值
3 30 12~20 中规模 N≈1000~5000 / 大规模 N≈5e4~1e5 压力
4 25 21~25 随机 N=1~1e5 回归