Description
a180285非常喜欢滑雪。他来到一座雪山,这里分布着M条供滑行的轨道和N个轨道之间的交点(同时也是景点),而且每个景点都有一编号i(1能从景点i 滑到景点j 当且仅当存在一条i 和j 之间的边,且i 的高度不小于j。
与其他滑雪爱好者不同,a180285喜欢用最短的滑行路径去访问尽量多的景点。如果仅仅访问一条路径上的景点,他会觉得数量太少。于是a180285拿出了...
分类:
其他好文 时间:
2014-06-26 10:47:10
阅读次数:
216
最短路径问题就是给定一个图,这个图中的边是有方向和权重的。求s到t的最短路径。
最短路径问题其实分为很多种。按照起点和终点来分,可以分为:
从一个顶点到另一个顶点
从一个顶点到其他所有顶点
从所有顶点到所有顶点
按照边的权重来分可以分为:
非负权
任意权
欧几里德权
按照是否有环可以分为
...
分类:
其他好文 时间:
2014-06-25 08:36:29
阅读次数:
149
我们通过一个例子来看一下最小生成树的qiuf...
分类:
其他好文 时间:
2014-06-24 23:19:37
阅读次数:
222
凯莱公式:
spanning_trees_num( G ) = spanning_trees_num( G - e ) + spanning_trees_num( G · e )
矩阵树定理:
G 对应的拉普拉斯矩阵(度矩阵 - 邻接矩阵)L( G )
删除任意一行一列得到的行列式的值det( L*( G ) )
即生成树的个数,即spanning_trees_num( G...
分类:
其他好文 时间:
2014-06-24 22:05:54
阅读次数:
237
最小生成树是图论中的一个概念。首先介绍一下什么是生成树。生成树就是将一个图中所有的顶点全部连接在一起,并且保证图中没有出现回路。
下图不是生成树,因为没有连接所有的顶点。
下图不是生成树,因为图中有回路。
像下图这样的才是生成树。
生成树的概念介绍完了。那么最...
分类:
其他好文 时间:
2014-06-22 18:33:47
阅读次数:
202
问题
最小生成树的Kruskal算法
描述:有A、B、C、D四个点,每两个点之间的距离(无方向)是(第一个数字是两点之间距离,后面两个字母代表两个点):(1,'A','B'),(5,'A','C'),(3,'A','D'),(4,'B','C'),(2,'B','D'),(1,'C','D') 生成边长和最小的树,也就是找出一种连接方法,将各点连接起来,并且各点之间的距离和最小。...
分类:
其他好文 时间:
2014-06-22 16:49:27
阅读次数:
392
E
Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
给出一个带权无向图,求出其最小生成树。保证图连通。
输入
对于每组数据:
第一行输入n,m。表示此图有n(n
接下来m行,每行u,v,w。表示u,v之间有一条权值为w的边。
输出
对于每组数据,输出一...
分类:
其他好文 时间:
2014-06-22 11:30:30
阅读次数:
213
上一篇文章中提到了最小生成树的Prim算法,这一节继续探讨一下最小生成树的Kruskal算法。什么是最小生成树算法上文已经交代过了,所以我们直接从Kruskal的步骤开始介绍。1.Kruskal算法的步骤:a.假定拓扑图的边的集合是E,初始化最小生成树边集合G={}。b.遍历集合E中的所有元素..
分类:
其他好文 时间:
2014-06-22 10:27:54
阅读次数:
357
克鲁斯卡尔算法(Kruskal's algorithm)是两个经典的最小生成树算法的较为简单理解的一个。这里面充分体现了贪心算法的精髓。大致的流程能够用一个图来表示。这里的图的选择借用了Wikipedia上的那个。很清晰且直观。首先第一步,我们有一张图,有若干点和边例如以下图所看到的:第一步我们要做...
分类:
其他好文 时间:
2014-06-22 09:46:37
阅读次数:
194
为了简化问题,我们需要作出一些假设。假设图中每条边的权重都是不一样的,假设整个图是连通的。这样假设的目的就是让最小生成树的计算结果是唯一的。
图的切割
介绍算法之前,需要先了解图的切割。图的切割就是将顶点分割成两部分,切到的边称之为交叉边。下图红色的先就是交叉边。
在最小生成树中,无论如何切割,最小生成树总是从交叉边中选择最小的...
分类:
其他好文 时间:
2014-06-21 23:51:30
阅读次数:
316