"题目链接$Click$ $Here$" 。 题意就是要求一个图的严格次小生成树。以前被题面吓到了没敢做,写了一下发现并不难。 既然要考虑次小我们就先考虑最小。可以感性理解到一定有一种次小生成树,可以由最小生成树删一条边再加一条边得到。我们枚举加上去的这一条边,加上去以后原$mst$会成为一个基环树 ...
分类:
其他好文 时间:
2019-04-27 21:30:52
阅读次数:
213
/* Kruskal模板 */ struct edge{ int from; int to; int next; int value; bool operator<(const edge a) const{ return value<a.value ; } }; const int inf=0x3f... ...
分类:
其他好文 时间:
2019-04-26 22:26:29
阅读次数:
150
最小生成树是在n个点的图中选n-1条边构成树(每个点都满足能够互相达到,即直接连接或间接) 整一整kruskal 模板: ...
分类:
其他好文 时间:
2019-04-26 19:36:47
阅读次数:
118
按照惯例,接下来是本篇目录: $1 什么是最小生成树? $2 什么是克鲁斯卡尔算法? $3 克鲁斯卡尔算法的例题 摘要:本片讲的是最小生成树中的玄学算法--克鲁斯卡尔算法,然后就没有然后了。 $1 什么是最小生成树? ?定义: 先引入一个定理:N个点用N-1条边连接成一个联通块,形成的图形只可能是树 ...
分类:
编程语言 时间:
2019-04-23 20:42:18
阅读次数:
207
(最小生成树)Kruskal算法 算法要点:Kruskal算法的最难点在于怎样判断加入边(x, y)后是否形成了环. 问题可化简为:判断边(x, y)的两个顶点在图(实际是森林)mst中是否已连通。如果已经连通,加入边将形成环; 否则,不形成环。 Kruskal算法中, 要用到并查集的合并与查找。 ...
分类:
编程语言 时间:
2019-04-23 19:09:44
阅读次数:
123
第一次写题解,大佬们勿喷。 传送门 最小生成树其实是最小权重生成树的简称。一个有n个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有n个结点,并且有保持图连通的最少的边。最小生成树可以用kruskal(克鲁斯卡尔)算法或Prim(普里姆)算法求出。 来自于搜狗百科 下面本蒟蒻一一为大家解 ...
分类:
其他好文 时间:
2019-04-18 21:44:45
阅读次数:
179
https://cn.vjudge.net/problem/HDU-1863 省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可)。经过调查评估,得到的统计表中列出了有可能建设公路的若干条道路的成本。现请你编写程序,计算出全省畅通需 ...
分类:
其他好文 时间:
2019-04-18 09:26:24
阅读次数:
116
适合对并查集有一定理解的人. 新手可能看不懂吧.... 并查集简单点说就是将相关的2个数字联系起来 比如 房子 1 2 3 4 5 6 能通向的房子 2 3 4 5 6 1 主要 建立并查集的 函数结构 模板(一般不变除非加权--最好能理解) for(int i=0;i<n;i++) flag[i] ...
分类:
其他好文 时间:
2019-03-28 00:33:43
阅读次数:
141
1.BFS:树层序遍历 DFS:树先序遍历 均可判断是否为连通图,因为若为非联通的,一遍遍历访问不了所有结点。。 2.最小生成树 prim算法:贪心算法,先找最小权边,将此两点点作为点集合,再找离此集合最小权边的点加入,无限加入。 Kruskal算法:对所有点的集合里从小到大加入边(只要不构成回路) ...
分类:
编程语言 时间:
2019-03-19 21:33:43
阅读次数:
192
kruskal是按权值排序的贪心算法 众所周知 n个点 靠n-1条边就可以连通了。。 带上权值 就可以连成一棵最小生成树。 其实 并查集的操作就是判重。。(不知道咋解释) 合并之后就不会重复选中了。 prim的话 prim的话 有好几种版本。。 prim不如kruskal 如果说要是稠密图【比较少的 ...
分类:
其他好文 时间:
2019-03-13 21:42:00
阅读次数:
182