首页 > 代码库 > 图论-最小生成树
图论-最小生成树
今天听了CLRS的第二作者讲的课程,关于最小生成树的算法。
其实就是先模拟一下小样例(不是单纯模拟,而是发现其中的规律,要思考)
然后发现最优子结构-如果(u,v)是一条唯一连接两点的边,那么将原图拆分为两块(一块包含u,一块包含v),两图分别最优解+dist[u,v]就是原图的最优解了。
然后发现这样做会有很多很多的重叠子问题:把每次的(u,v)换一换顺序就一堆重叠子问题。于是就有动态规划的思路了……
别急!
这里还有一个性质:如果(u,v)在当前图中边权最小,则(u,v)必在此图的最小生成树中。
证明:
我们把此图(V,E)的点集合分为两个点集集合(A,B)且u∈A,v∈B,且A+B=V,A&B=?;则在(V,E)的最小生成树中,必有一条边连接(跨越)A,B两个集合。
然而(u,v)必定比这条边优。所以(u,v)必在此图的最小生成树中。
贪心证明完毕!
图论-最小生成树
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。