题目:
在这里插入图片描述

考察内容:
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)
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐