题目:
考察内容:
dict–update—for + sum + max
代码:
"""
题目分析:
输入:
N int 1,1000 成员总数
list len(list)=N int 1, 1000000 财富值
N-1行, N1 N2, N1是N2的父节点
输出;
最富裕的小家庭的财富和
eg:
4
100 200 300 500
1 2
1 3
2 4
4
100 200 300 500
1 2
1 3
1 4
思路:
父节点, 用字典update
for + sum + max
"""
N = int(input())
sum_list = list(map(int, input().split()))
res = dict()
# 将父亲关系,通过字典映射,财富,key=父亲,value=儿子,通过列表表示
for _ in range(N-1):
a, b = map(int, input().split())
# 获取对应财富
rich_a = sum_list[a-1]
rich_b = sum_list[b-1]
# 将儿子属于同一个父亲的,归到一类
if rich_a in res:
# 有相同的建,会直接替换成update的值
temp = res[rich_a]
temp.append(rich_b)
res.update({rich_a: temp})
else:
res.update({rich_a: [rich_b]})
print(res)
total = 0
for key, value in res.items():
total = max(total, key + sum(value))
print(total)