algorithm - 连接树中的节点

标签 algorithm tree connect

一个假设性的问题。假设我得到了一棵树 T 和 T 中的一对节点 (x, y) 的列表。有人问我最多可以使用 T 中的每条边同时连接多少对节点(将 x 与 y 连接) .

怎么会这样呢?

最佳答案

这对树来说不是 NP 难的。例如,您可以执行以下操作。

  1. 任意根树。

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

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

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

查看步骤 1、2 和 3 并自己计算递归可能更容易,但只是为了给您一个想法,(2) 可以通过取几个解决方案中的最大值来计算:一个求和v 的子项的解决方案(即,第 2 步中为每个子项生成的解决方案的总和),以及包含 v 的每个路径的一个解决方案加上其他子项的第 2 步解决方案(这基本上包括一个或在第 3 步中为 v 的 child 生成的两个解决方案,加上在第 2 步中为其他 child 生成的解决方案的总和)。

关于algorithm - 连接树中的节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4288447/

相关文章:

c# - 识别下一个更高数字的算法,可以除以 10 的幂

algorithm - 理解扫雷程序编程问题

java - 从树数据结构打印纯文本树(java)

Java序列化包含许多空节点的N叉树

C unix 套接字编程,connect() 卡在无效的主机名上

algorithm - 这个 n-queens Prolog 解决方案是如何工作的?

c++ - 寻找幂的算法,即 n^p

c++数据结构用 vector 实现二叉树

PHP pconnect 和连接测试失败

java - 连接四个 Java 游戏项目,需要基本概念方面的帮助