普通的最小生成树,是用于求使给定点集连通的最小代价。
而斯坦纳树的不同点就在于,除了必选点之外,它还可以选择一些不必连通的辅助点,起到减小代价的作用。
考虑最朴素的状压\(DP\),设\(f_S\)表示连通点集\(S\)的最小代价。
但是,斯坦纳树的题目一般都是必选点数量很小,辅助点数量却可能很多。
因此我们不得不改变状态的设立方式:\(f_{i,S}\)表示以\(i\)为根、连通必选点点集\(S\)的最小代价。
说是以\(i\)为根,实际上这个根并没有什么具体意义,只是单纯方便转移而已。
然后转移就用两种方式:
原文:https://www.cnblogs.com/chenxiaoran666/p/SteinerTree.html