这是一个更大的问题,我已经归结为以下问题。给定具有正边缘权重的加权树,并且具有k个叶子。叶子是在树中具有恰好一个相邻节点的节点。我需要从树中删除一些边缘,以便树分割成k个组件,每个组件只包含原始树中的一个叶节点。换句话说,我需要删除边缘,以便原始树中的所有叶子与原始树的每个其他叶子分离/断开。
我需要这样做,以便最小化删除边的权重(成本)之和。显示需要删除k-1边缘是微不足道的。所以我需要最小化这些k-1边的权重之和。
这样做的最佳方法是什么?任何提示将不胜感激。谢谢!
答案 0 :(得分:1)
我认为贪婪算法可以在这里工作。
即。删除生成新组件的最低权重边,并重复k-1次。
请注意,您必须小心使用以下图表:
d< -A-> B-&以及c
如果您首先删除B-> C,则删除A-> B不会生成新组件,因为B不是叶子,因此不需要分开。
换句话说,在选择最低权重边时,不要包含任何仍然不会通向叶节点的边。