题目大意:给定一个有向图,根节点已知,求该有向图的最小树形图。最小树形图即有向图的最小生成树,定义为:选择一些边,使得根节点能够到达图中所有的节点,并使得选出的边的边权和最小。 题目算法:朱-刘算法(即由中国人朱永津和刘振宏共同发明的算法)。 算法步骤如下: 1.判断图的连通性,若不连通直接无解,否 ...
分类:
其他好文 时间:
2017-07-08 14:14:26
阅读次数:
147
任意门 为了在漫长得飞行旅途中娱乐,Alex和Fedor发明了如下的一个简单的双人游戏。游戏是: 首先, Alex画一个有权无向图。该图中可能有多重边(多重边的权值可能相同或者不同)。 然后,Fedor选取该图的一个生成树。如果该树是这个图的最小生成树,则Fedor获胜。否则,Alex获胜。 首先, ...
分类:
其他好文 时间:
2017-06-30 22:32:00
阅读次数:
251
边赋以权值的图称为网或带权图,带权图的生成树也是带权的,生成树T各边的权值总和称为该树的权。 最小生成树(MST):权值最小的生成树。 生成树和最小生成树的应用:要连通n个城市需要n-1条边线路。可以把边上的权值解释为线路的造价。则最小生成树表示使其造价最小的生成树。 构造网的最小生成树必须解决下面 ...
分类:
编程语言 时间:
2017-06-27 10:02:00
阅读次数:
117
Tips:本题解是【随便搞搞 1】Prim算法的学习和使用 的姊妹篇,希望先阅读Prim算法。 预习及预备知识: 克鲁斯卡尔(Kruskal)算法是实现图的最小生成树最常用的算法。 大家知道,存储图的方法有2种:邻接矩阵表示法、邻接表表示法; 这里介绍的是介于这两种之间的一种方法:边接存储法(即直接 ...
分类:
其他好文 时间:
2017-06-18 14:23:48
阅读次数:
219
文章转载自:最小生成树-Prim算法和Kruskal算法 图的生成树是它的一棵含有所有顶点的无环连通子图,一棵加权图的最小生成树是它的一棵权值最小的生成树。 Prim算法 算法简单描述 1).输入:一个加权连通图,其中顶点集合为V,边集合为E; 2).初始化:Vnew = {x},其中x为集合V中的 ...
分类:
其他好文 时间:
2017-06-10 12:42:47
阅读次数:
235
1016: [JSOI2008]最小生成树计数 Description 现在给出了一个简单无向加权图。你不满足于求出这个图的最小生成树,而希望知道这个图中有多少个不同的 最小生成树。(如果两颗最小生成树中至少有一条边不同,则这两个最小生成树就是不同的)。由于不同的最小生 成树可能很多,所以你只需要输 ...
分类:
其他好文 时间:
2017-05-29 15:59:55
阅读次数:
134
一个无向图G的最小生成树就是由该图的那些连接G的所有顶点的边构成的树,且其总价值最低,因此,最小生成树存在的充分必要条件为图G是连通的,简单点说如下: 1.树的定义:有n个顶点和n-1条边,没有回路的称为树 生成树的定义:生成树就是包含全部顶点,n-1(n为顶点数)条边都在图里就是生成树 最小:指的 ...
分类:
编程语言 时间:
2017-05-19 22:28:50
阅读次数:
151
Description 现在给出了一个简单无向加权图。你不满足于求出这个图的最小生成树,而希望知道这个图中有多少个不同的最小生成树。(如果两颗最小生成树中至少有一条边不同,则这两个最小生成树就是不同的)。由于不同的最小生成树可能很多,所以你只需要输出方案数对31011的模就可以了。 Input 第一... ...
分类:
Web程序 时间:
2017-05-18 18:41:12
阅读次数:
295
Prim算法 Prim算法求最小生成树是采取蓝白点的思想,白点代表已经加入最小生成树的点,蓝点表示未加入最小生成树的点。 进行n次循环,每次循环把一个蓝点变为白点,该蓝点应该是与白点相连的最小边权的是当前蓝点中最小的。这样就相当于向生成树中添加了n-1次最小的边,最后得到的一定是最小生成树。 1 # ...
分类:
编程语言 时间:
2017-05-07 11:45:15
阅读次数:
247
Kruskal算法 图的最小生成树的算法之一,运用并查集思想来求出最小生成树。 基本思路就是把所有边从小到大排序,依次遍历这些边。如果这条边所连接的两个点在一个连通块里,遍历下一条边,如果不在,就把这条边加入连通块,这样就可以保证生成树的边权最小。 我们使用并查集来判断两个点是否在同一个连通块里,如 ...
分类:
编程语言 时间:
2017-05-07 10:25:03
阅读次数:
181