https://vjudge.net/problem/UVA-1395 题意: 给出一个n结点的图,求苗条度(最大边减最小边的值)尽量小的生成树。 思路: 主要还是克鲁斯卡尔算法,先仍是按权值排序,对于一个连续的边集区间[L,R],如果这些边使得n个点全部连通,则一定存在一个苗条度不超过W[R]-W ...
                            
                            
                                分类:
其他好文   时间:
2017-02-10 22:07:21   
                                阅读次数:
324
                             
                         
                    
                        
                            
                            
                                假设连通网N=(V,{E}),则令最小生成树的初始状态为只有n个顶点而无边的非连通图T=(V,{∮}),图中每个顶点自成一个连通分量。在E中选择代价最小的边,若该边依附的顶点落在T中不同的连通分量上,则将此边加入到T中,否则舍去此边而选择下一条代价最小的边。依次类推,直至T中所有顶点都在同一连通分量 ...
                            
                            
                                分类:
编程语言   时间:
2017-01-15 13:00:18   
                                阅读次数:
336
                             
                         
                    
                        
                            
                            
                                第一篇博客。 克鲁斯卡尔求最小生成树思想:首先将n个点看做n个独立的集合,将所有边快排(从小到大)。然后,按排好的顺序枚举每一条边,判断这条边连接的两个点是否属于一个集合。若是,则将这条边加入最小生成树,并将两个点所在的集合合并为一个集合。若否,则跳过。直到找到n-1条边为止。 #include<i ...
                            
                            
                                分类:
编程语言   时间:
2016-12-12 22:45:05   
                                阅读次数:
308
                             
                         
                    
                        
                            
                            
                                    最小生成树 一个有 n 个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有 n 个结点,并且有保持图连通的最少的边。最小生成树可以用kruskal(克鲁斯卡尔)算法或prim(普里姆)算法求出。 在一给定的无向图G = (V, E) 中,(u, v) 代表连接顶点 u 与顶点 v 的边( ...
                            
                            
                                分类:
其他好文   时间:
2016-11-02 14:15:28   
                                阅读次数:
224
                             
                         
                    
                        
                            
                            
                                    题目链接请戳 这里 解题思路 克鲁斯卡尔求最小生成树 代码 ...
                            
                            
                                分类:
其他好文   时间:
2016-10-29 21:31:34   
                                阅读次数:
112
                             
                         
                    
                        
                            
                            
                                上篇博客我们聊了图的物理存储结构邻接矩阵和邻接链表,然后在此基础上给出了图的深度优先搜索和广度优先搜索。本篇博客就在上一篇博客的基础上进行延伸,也是关于图的。今天博客中主要介绍两种算法,都是关于最小生成树的,一种是Prim算法,另一个是Kruskal算法。这两种算法是很经典的,也是图中比较重要的算法 ...
                            
                            
                                分类:
编程语言   时间:
2016-10-28 09:42:36   
                                阅读次数:
366
                             
                         
                    
                        
                            
                            
                                    算法要点:Kruskal算法的最难点在于怎样判断加入边(x,y)后是否形成了环。 问题可化为:判断边(x,y)的两个顶点x,y在图(实际是森林)mst中最否已经连通。如果已经连通,加入边将形成环;否则,不形成环。 在kruskal算法中,要用到并查集的合并和查找 并查集: kruskal算法核心:  ...
                            
                            
                                分类:
编程语言   时间:
2016-10-06 22:05:38   
                                阅读次数:
420
                             
                         
                    
                        
                            
                            
                                只是写一个模板,具体讲解就不讲了,是一个并查集的应用+贪心的思想。 路径压缩还是很有用处的,没有压缩的时候tml了三个,压缩之后明变快了不少,虽然还是那么慢 先说一下我的压缩方法就当学习一下并查集: 非递归的路径压缩,先找到祖先结点,然后从头到尾的更新路径的每一个点,让他们直接指向祖先结点 还有一种 ...
                            
                            
                                分类:
编程语言   时间:
2016-10-03 12:58:54   
                                阅读次数:
139
                             
                         
                    
                        
                            
                            
                                /**并查集实现克鲁斯卡尔算法61 2 62 4 11 4 21 3 13 5 44 5 3**/#include<iostream>#include<vector>#include<algorithm>#define MAX_N 100using namespace std; struct Nod ...
                            
                            
                                分类:
编程语言   时间:
2016-09-10 23:55:11   
                                阅读次数:
162