目录
题目
在一颗树中,每个节点代表一个家庭成员,节点的数字表示其个人的财富值,一个节点及其直接相连的子节点被定义为个小家庭。
现给你一颗树,请计算出最富裕的小家庭的财富和。
输入描述
第一行为一个数 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来保存父子关系,最后遍历所有的输入

博客讲述了如何解决华为在线开发者测试(OD)中的一道C语言题目,该题目要求在给定的树结构中找到最富裕的小家庭的财富和。博主提供了思路分析,即通过HashMap存储父子关系,然后遍历关系将财富累加到父节点,最后找出最富裕的家庭。博客还给出了相关编程语言的真题题库资源链接。
订阅专栏 解锁全文

28万+

被折叠的 条评论
为什么被折叠?



