码迷,mamicode.com
首页 > 其他好文 > 详细

图论-最小生成树

时间:2017-05-31 23:07:58      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:规律   amp   包含   思路   clr   规划   今天   集合   顺序   

今天听了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)必在此图的最小生成树中。

贪心证明完毕!

图论-最小生成树

标签:规律   amp   包含   思路   clr   规划   今天   集合   顺序   

原文地址:http://www.cnblogs.com/dancer16/p/6926113.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!