题目解析
简单的逻辑分析题。
由于题目输入会给出 树形结构 中,父节点->子节点 的信息,比如下面红色部分
4
100 200 300 500
1 2
1 3
2 4
因此我们遍历这些信息时,就可以直接将子节点的财富,汇总到其父节点上。
具体实现是,由第二行输入解析得到每个节点的财富值数组 wealth。
然后根据第三行~最后一行的输入:fa ch,执行 wealth[fa] += wealth[ch],即将子节点的财富值汇总到父节点上。
这样最终wealth数组的最大值就是题解。
需要注意的是,题目规定成员编号 1~N,因此定义wealth数组时,我们应该将其长度定义为N+1,且从索引1开始操作,来匹配成员编号1~N。
2023.11.26 上面逻辑中:
wealth[fa] += wealth[ch]
存在问题。
比如下面用例:
5
100 200 300 400 500
3 4
3 5
1 3
1 2
3是1的子节点,但是3的家庭关系先被定义出来了,因此如果将家庭的财富都汇总到父节点身上,上面逻辑会将节点3的财富值变为1200,从而影响后面父节点为1的家庭财富计算。