Description 给你一个无向图,N(N<=500)个顶点, M(M<=5000)条边,每条边有一个权值Vi(Vi<30000)。给你两个顶点S和T,求一条路径,使得路径上最大边和最小边的比值最小。如果S和T之间没有路径,输出”IMPOSSIBLE”,否则输出这个比值,如果需要,表示成一个既约 ...
分类:
其他好文 时间:
2016-07-13 20:25:11
阅读次数:
273
NOIP2013 提高组 day2 第三题 Kruskal算法是图论里求最小生成树的高效算法 借用并查集来巧妙的算最小生成树 思路是这样的: 先把所有的边排序,然后根据需要来依次合并权值最大(小)边的端点(或是计算路线中所有边中的最小值的最大值) 注 但是Kruskal并不能全过,只过得到60%,还 ...
分类:
其他好文 时间:
2016-07-12 22:56:04
阅读次数:
132
前面在介绍并查集时顺便提了Kruskal算法,既然已经说到了最小生成树问题,就没有道理不把Prime算法说了。 这里面先补充下Kruskal算法的大概意思,Kruskal算法通过把所有的边从小到大排列后,不断取权值最小的边加入最小生成树(起初可能是离散的多个树,最终连成一个整体),并通过并查集来舍弃 ...
分类:
编程语言 时间:
2016-07-08 21:44:21
阅读次数:
285
并查集 并查集处理的是集合之间的关系,即‘union' , 'find' 。在这种数据类型中,N个不同元素被分成若干个组,每组是一个集合,这种集合叫做分离集合。并查集支持查找一个元素所属的集合和两个元素分别所属的集合的合并。 并查集支持以下操作: MAKE(X):建立一个仅有成员X的新集合。 UNI ...
分类:
编程语言 时间:
2016-07-08 21:38:40
阅读次数:
239
Portal: http://acm.hdu.edu.cn/showproblem.php?pid=1233 最小生成树模板题 kruskal+并查集 因为给出了所有村庄间的距离,所以保证所有村庄在一个强连通分量里,所以直接kruskal 1 #include<iostream> 2 #includ ...
分类:
其他好文 时间:
2016-07-06 00:07:09
阅读次数:
151
Portal:http://acm.hdu.edu.cn/showproblem.php?pid=1879 。。。畅通工程没完没了了 kruskal+并查集 又给出了所有村庄间的距离,保证所有村庄在一个强连通分量里,所以直接kruskal 建好的路建造代价为0 1 #include<iostream ...
分类:
其他好文 时间:
2016-07-06 00:06:20
阅读次数:
196
bfs+最小树形图+kruskal算法。 最小树形图形象地来说就是有向图的最小生成树,这个不能拿kruskal算法或者是prim算法直接求,否则会错。 就是w[u][v]!=w[v][u]的情况。 而这道题用朱刘算法肯定是行不通的。 但是这道题的有向边并不是边的性质,而是点的高度决定的。这样我们就可... ...
分类:
其他好文 时间:
2016-07-02 21:25:58
阅读次数:
268
1. 对G的边按权重非降序排列。
2. 一次取权重最小的边,如果把它放入T不会形成回路的话,则把它放入T中,否则将它丢弃。...
分类:
编程语言 时间:
2016-06-29 11:23:17
阅读次数:
186
题意:将一些镇子连起来,求最短距离 用kruskal求最小生成树 代码: ...
分类:
其他好文 时间:
2016-06-28 23:37:08
阅读次数:
167
【由于时间不是很充足,现将完整代码放出,具体分析和思路,以后再更新】 【详细代码】经codeblocks-13.12调试 【运行结果】不同VertexType 【后记】 算法思想提高智商,算法实现积累经验 ...
分类:
编程语言 时间:
2016-06-27 21:44:29
阅读次数:
216