连接树中的节点

时间:2010-11-26 20:47:48

标签: algorithm tree connect

一个虚构的问题。假设我在T中给出了一个树T和一对节点(x,y)的列表。我被问到我可以使用T中的每个边最多一次同时连接多少对(连接x和y) 。

怎么会这样?

1 个答案:

答案 0 :(得分:2)

树木不是NP难的。例如,您可以执行以下操作。

  1. 任意植树。

  2. 对于每个顶点v,计算局限于v子树的最优解。

  3. 此外,对于每个v,对于包含v的父边缘的每个路径p,计算限制在v的子树中的最优解,路径p除外。

  4. (2)和(3)可以使用v子树中较小问题的解决方案来计算。

    查看步骤1,2和3可能更容易,并自己弄清楚复发,但只是为了给你一个想法,(2)可以通过采用几个解决方案的最大值来计算: v的孩子的解决方案(即,每个孩子在步骤2中产生的解决方案的总和),以及包括v的每个路径的一个解决方案以及其他孩子的步骤2解决方案(这将基本上包括一个或对于v的孩子,在步骤3中产生了两个解决方案,以及在步骤2中为其他孩子生成的解决方案的总和。)