[英]Find minimum cost to visit all nodes of a tree
给定树的根,其中每个边具有相关的成本。 找到访问树的每个节点的最低成本。
我想到的一个递归解决方案是:
这种方法是否正确?
有没有更好的方法来解决这个问题?
edges * 2
。 答案应该是:
sum(cost(edge)*2) - sum(edge which in the path)
我检查了你的解决方案,我认为这是错误的(如果我误解了你的解决方案,请发表评论):
减去具有最高成本的孩子的边缘成本。(“贪婪” - 我们>不想从具有最高成本的孩子回溯 )。
那个孩子将是一棵树,一些边缘必须访问两次。 例如:
A
/ \
B C
/ \
D E
您无法访问该子树所有边缘一次访问所有节点。
1-除最后一个叶节点外,将访问所有节点路径两次。
2-我们需要找出哪个叶子节点附加了最高成本才能访问根节点。
3-一旦我们发现这一点,我们将需要进行遍历,使得该叶节点是最后访问的节点。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.