题目链接: "http://poj.org/problem?id=1679" 题目大意: 给你一个简单连通图,判断他的最小生成树是否唯一。 解题思路: 首先(我这里用Kruskal算法)求出它的最小生成树(以下简称MST)以及对应的边,然后构造出这棵MST。 然后我们枚举图上每一条不在此MST上的边 ...
分类:
其他好文 时间:
2020-02-02 19:56:59
阅读次数:
91
Prim、Kruskal算法求解最小生成树 [TOC] 关于最小生成树有两个很重要的算法:Prime(普利姆)算法和Kruskal(克鲁斯卡尔)算法,下面是这两个算法的代码上的基本实现: Prime算法 该算法利用了最小生成树的MST性质,该算法很好的运用了贪心算法,其基本思想是随机选取一个结点,找 ...
分类:
其他好文 时间:
2020-02-02 15:31:10
阅读次数:
73
求最小生成树常用,因为效率高(Omlgm) 给定一个n个点m条边的无向图,图中可能存在重边和自环,边权可能为负数。 求最小生成树的树边权重之和,如果最小生成树不存在则输出impossible。 给定一张边带权的无向图G=(V, E),其中V表示图中点的集合,E表示图中边的集合,n=|V|,m=|E| ...
分类:
编程语言 时间:
2020-01-28 15:46:00
阅读次数:
65
最小生成树 最小生成树就是在一个图中寻找一个联通图,必须包含原图的所有节点,且这个图的所有边的权值和最小. 为什么是一个树呢?因为只要求联通,就一定没有环,没有环不就是树了嘛! Kruskal算法 Kruskal算法的核心是加边和判环.一条一条把边加上,如果加上会形成环就不加,最后弄成一个连通图. ...
分类:
其他好文 时间:
2020-01-20 12:49:39
阅读次数:
68
Kruskal算法: ①用并查集实现 ②构造一个只含 n 个顶点,边集为空的子图,把子图中各个顶点看成各棵树上的根结点 ③sort()排序升序,依次从边集 E 中选取一条权值最小的边,如果该条边的两个顶点分属不同的树,则把两棵树合成一棵树。若该条边的两个顶点已落在同一棵树上,跳过,取下一条权值最小的 ...
分类:
其他好文 时间:
2020-01-14 23:39:46
阅读次数:
75
题目描述 根据输入创建无向网。分别用Prim算法和Kruskal算法构建最小生成树。(假设:输入数据的最小生成树唯一。) 输入 顶点数n n个顶点 边数m m条边信息,格式为:顶点1 顶点2 权值 Prim算法的起点v 输出 输出最小生成树的权值之和 对两种算法,按树的生长顺序,输出边信息(Krus ...
分类:
其他好文 时间:
2020-01-11 22:07:12
阅读次数:
121
关于图的几个概念定义: 连通图:在无向图中,若任意两个顶点vivi与vjvj都有路径相通,则称该无向图为连通图。 强连通图:在有向图中,若任意两个顶点vivi与vjvj都有路径相通,则称该有向图为强连通图。 连通网:在连通图中,若图的边具有一定的意义,每一条边都对应着一个数,称为权;权代表着连接连个 ...
分类:
编程语言 时间:
2020-01-04 16:31:27
阅读次数:
88
描述:在分阶段执行操作的情况下,在每一阶段都选择当前最后的解,而不顾将来如何。顾名思义:贪心法/贪婪法是“只顾当下,不计未来”;另外,贪心法并不一定总是最优解,但是一个比较不错的可行解。 应用举例:Prim算法,Kruskal算法,Dijkstra算法 Prim算法简述:Prim算法使得求得得解连续 ...
分类:
编程语言 时间:
2019-12-23 13:08:23
阅读次数:
105
最小生成树:如果无向连通图是一个网,它的所有生成树中必有一棵边的权值总和最小的生成树,称这棵生成树为最小生成树。 Prime算法 假设G=(V,E)为一网图,其中V为网图中所有顶点的集合,E为网图中所有带权边的集合。设置两个新集合U和T,其中集合U用于存放G的最小生成树中的顶点,集合T存放G的最小生 ...
分类:
其他好文 时间:
2019-12-20 20:38:25
阅读次数:
97
数据结构第七到十章 期末复习总结 写在前面:期末数据结构继续给爷冲! 第七章:图无 无向完全图:有n个顶点的话,含n(n-1)/2条边, 有向完全图:有n个顶点则含n(n-1)条弧 简单路径:若路径中的中顶点不重复出现,则该路径称为简单路径。从顶点v1到顶点v5的两条路径都为简单路径。 简单回路:除 ...
分类:
其他好文 时间:
2019-12-19 11:29:55
阅读次数:
111