目录
题目
在一颗树中,每个节点代表一个家庭成员,节点的数字表示其个人的财富值,一个节点及其直接相连的子节点被定义为个小家庭。
现给你一颗树,请计算出最富裕的小家庭的财富和。
输入描述
第一行为一个数 N,表示成员总数,成员编号 1~N。1< N 1000第二行为 N 个空格分隔的数,表示编号 1~N 的成员的财富值。0 <=财富值<= 1000000.
接下来 N-1 行,每行两个空格分隔的整数 (N1,N2) ,表示 N1 是 N2 的父节点
输出描述
最富裕的小家庭的财富和示例1:
输入:
4
100 200 300 500
1 2
1 3
2 4
输出
700
说明
成员1,2,3 组成的小家庭财富值为600成员2,4 组成的小家庭财富值为700
思路
1:C卷的题目真的是越来越简单了,这里找出最富裕的家庭,其实就是找到每个家庭的最大父节点,然后将所有的钱全部加到父节点上即可。
2:因为有对应关系,所以我们定义一个hashmap来保存父子关系,最后遍