一个虚幻的问题.假设我在T中给出了一个树T和一对节点(x,y)的列表.我被问到我可以使用T中的每个边最多一次同时连接多少对(连接x和y) .
怎么会这样?
最佳答案 树木不是NP难的.例如,您可以执行以下操作.
>任意植树.
>对于每个顶点v,计算局限于v的子树的最优解.
>此外,对于每个v,对于包含v的父边缘的每个路径p,计算限制为v的子树的最优解,除了路径p.
(2)和(3)可以使用v子树中较小问题的解决方案来计算.
看看步骤1,2和3可能更容易,并自己弄清楚复发,但只是为了给你一个想法,(2)可以通过采用几个解决方案的最大值来计算:一个解决方案的总和v的子项(即,每个孩子在步骤2中生成的解的总和),以及包含v的每个路径加上其他子项的步骤2解决方案的一个(这将基本上包括生成的一个或两个解决方案的总和)在第3步中对于v的孩子,加上在步骤2中为其他孩子产生的解决方案的总和).