有一棵树有 N 个节点和 N-1 条边(使它成为一棵树)。每个节点都有一个权重 W(i)。如何选择一个仍包含原始树根的大小为 K 个节点的子树?我必须这样做,以便最大限度地减少选择此“子树”的“成本”,其中成本定义为保留的所有边的权重之和。
我想我以前做过这样的问题,看起来像 DP/recursion。但是,当每个节点限制为 2 个子节点时,我知道如何处理它。您已经定义了一个函数 cost(n, i),这意味着从节点 n 开始保持 i 个节点的最小成本。您将在其中一个孩子中从 i = 0 迭代到 n ,并将其余部分交给另一个孩子。但是,由于每个节点可以有无限数量的孩子,有没有办法解决这个问题?
谢谢