构造有根斯坦纳树的过程包括①添加新的根连向原树的根②合并两棵具有相同根的树。在记录子树信息的基础上,这两个过程可以用动态规划加速。 此外,答案需要最优解的方案数,因此在过程中需要计算方案数,第一种过程不存在算重的情况,第二种过程存在算重的可能,但规定合并的顺序后即可避免算重。 定义 f[S][i] 表示以 i 为根、包含的关键点集合为 S 的斯坦纳树的<所需最小边数,最小边数对应方案数>,且这棵树的上一次构造过程(如果有)不是过程②。 定义 g[S][i] 表示以 i 为根、包含的关键点集合为 S 的斯坦纳树的<所需最小边数,最小边数对应方案数>。 所求即 g[包含所有...