最小生成树简单来说就是在一个有$n$条边的有权无向连通图中选出$n-1$条边,使图连通并且这$n-1$条边的边权和最小。 Kruskal算法是用一种贪心的思想,先将所有的边按边权排序,按边权从小到大顺序枚举边,如果起点和终点不在一个集合,就选这条边,并将起点和终点合并成一个集合;反之则不选此边。集合 ...
分类:
其他好文 时间:
2017-06-03 14:08:53
阅读次数:
112
尊重劳动成果 转自http://www.cnblogs.com/biyeymyhjob/archive/2012/07/30/2615542.html Prim算法 1.概览 普里姆算法(Prim算法),图论中的一种算法,可在加权连通图里搜索最小生成树。意即由此算法搜索到的边子集所构成的树中,不但包 ...
分类:
编程语言 时间:
2017-06-03 12:54:25
阅读次数:
236
原题传送门 这道题目有2种做法: 1.kruskal 2.二分 对于第一种算法,我们知道最小的路一定在最小生成树上。这道题的原理可同NOIP货车运输 对于第二种算法,我们发现这道题的答案具有结论单调性,所以我们可以二分答案,然后用链表处理即可、。 下面贴第一种算法的代码 ...
分类:
其他好文 时间:
2017-06-01 18:35:58
阅读次数:
203
连通无向图有最小生成树,边权从小到大排序,每次尝试加入权最小的边,如果连通分支不减少,就把这边加进去,所有边扫一遍就求出了最小生成树。 判断连通分支用Union-Set(并查集),就是把连通的点看成一个集合,只关心哪些点在一个集合里,而不关心相互的连接方式。x父节点用fa【x】保存;如果x没有父节点 ...
分类:
编程语言 时间:
2017-05-27 21:16:19
阅读次数:
275
Network Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 13266 Accepted: 5123 Special Judge Description Andrew is working as system administ ...
分类:
Web程序 时间:
2017-05-22 15:03:49
阅读次数:
245
题目大意:Flatopia岛要修路,这个岛上有n个城市,要求修完路后,任意城市都可以到达其他城市,且修的总长度最短。 解题思路:很明显裸的最小生成树,只不过是求最大的边的权值。我用的是Kruskal。 (注意:请用“C++”提交,“G++”会超时) ...
分类:
其他好文 时间:
2017-05-21 20:33:54
阅读次数:
224
题意: 给定一张无向图,求出一个最长边减最短边最小的生成树。 分析: 这题之前做过一模一样的(应该是。。。),跑kruskal算法,维护一个subset,一旦出现了环,就删除这条环上最轻的边,不断更新subset,subset中存当前生成树的边,一旦边的个数m=点数n-1,就更新ans。 这个复杂度 ...
分类:
其他好文 时间:
2017-05-20 17:46:51
阅读次数:
140
连接的管道 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1323 Accepted Submission(s): 519 Problem D ...
分类:
其他好文 时间:
2017-05-20 14:30:41
阅读次数:
271
Kruskal算法 Kruskal算法是基于贪心的思想得到的。首先我们把所有的边按照权值先从小到大排列,接着按照顺序选取每条边,如果这条边的两个端点不属于同一集合,那么就将它们合并,直到所有的点都属于同一个集合为止。 http://cogs.pro/cogs/problem/problem.php? ...
分类:
其他好文 时间:
2017-05-16 23:09:46
阅读次数:
164