【发布时间】:2015-01-22 06:12:36
【问题描述】:
这里是Balancing Act 问题,要求在树中找到具有最小余额的节点。余额定义为:
删除任何节点 从树中产生一个森林:一棵或多棵树的集合。将节点的 balance 定义为森林 T 中通过从 T 中删除该节点而创建的最大树的大小
对于示例树,例如:
2 6
1 2
1 4
4 5
3 7
3 1
解释是:
删除节点 4 会生成两棵树,其成员节点为 {5} 和 {1,2,3,6,7}。这 这两棵树中较大的有五个节点,因此节点 4 的余额为 5。删除节点 1 生成由三棵大小相等的树组成的森林:{2,6}、{3,7} 和 {4,5}。这些树中的每一棵 有两个节点,所以节点1的余额是两个。
你能为这个问题提供什么样的算法?
谢谢
【问题讨论】:
-
家庭作业? ...这只是一棵普通的树吗?或者你能自己种树吗?
-
@yochai 这不是家庭作业。我不是学生,只是想解决这个问题。树的给出就像来自 x -> y 的输入