Description给出两只青蛙的坐标A、B,和其他的n-2个坐标,任一两个坐标点间都是双向连通的。显然从A到B存在至少一条的通路,每一条通路的元素都是这条通路中前后两个点的距离,这些距离中又有一个最大距离。现在要求求出所有通路的最大距离,并把这些最大距离作比较,把最小的一个最大距离作为青蛙的最小 ...
分类:
其他好文 时间:
2017-09-16 20:26:23
阅读次数:
194
Prim算法 1.概览 普里姆算法 (Prim 算法),图论中的一种算法,可在加权连通图里搜索最小生成树。意即由此算法搜索到的边子集所构成的树中,不但包括了连通图里的所有顶点 (英语 : Vertex (graph theory) ) ,且其所有边的权值之和亦为最小。该算法于1930年由捷克数学家沃 ...
分类:
编程语言 时间:
2017-09-16 11:38:35
阅读次数:
197
最小生成森林? 个人感觉跟最小生成树差不多。需要分成k个联通块,让联通块之间距离最大就让联通块内距离尽可能小。一颗最小生成树是N-1条边,分成k个块需要切k-1条,就是一个n-k条边的最小生成森林,然后Kruskal中的下一条边(第n-k+2条)就是答案了。 #include<cstdio> #in ...
分类:
Web程序 时间:
2017-09-15 10:16:11
阅读次数:
178
最优答案一定是一颗树 那么二分比值,不断kruskal找到最大可以满足的解就可以了 代码如下 ...
分类:
其他好文 时间:
2017-09-02 20:43:01
阅读次数:
102
题目:洛谷P2872、POJ3625。 题目大意:给你n个点的坐标,有些点已经有边连通,现在要你连上剩下的所有点,求这些边的最小长度是多少(不包括原来的边)。 解题思路:最小生成树,把所有边处理出来,跑Kruskal即可。注意原来有的边优先级最高且长度不加进答案。由于边的总数是$n^2$级别的,所以 ...
分类:
其他好文 时间:
2017-08-23 10:36:04
阅读次数:
169
Kruskal算法是生成最小生成树的一种好的算法,巧妙地运用了并查集。 ...
分类:
编程语言 时间:
2017-08-22 20:52:59
阅读次数:
187
个人心得:周测的时候心情有点闷,看到就不想去做,比完后第二天拿着一做,这么简单,我也是醉了。 虽然最后一周了,但是我还是希望你能稳住别被其他事扰乱军心了,希望以后的你能够静下心去思考。 这题:就是用Kruskal算法第一遍找出最大值中的最小值,第二次再反过来用一次就好了。 51nod魔法学校近日开展 ...
分类:
其他好文 时间:
2017-08-22 10:53:26
阅读次数:
172
题目:给一个矩阵告诉每条边的权,求最小生成树。 题解:建树之后直接用kruskal。 代码: #include <algorithm>#include <iostream>using namespace std;struct node{//每条边的两顶点以及距离 int from; int to; ...
分类:
其他好文 时间:
2017-08-21 10:52:48
阅读次数:
153
题意:给出一个图,去除每条边的花费为边的长度,求用最少的花费去除部分边使得图中无圈。 思路:先将所有的边长加起来,然后减去最大生成树,即得出最小需要破坏的篱笆长度。 #include #include #include #include #include using namespace std; i... ...
分类:
其他好文 时间:
2017-08-21 00:13:30
阅读次数:
118
题意:给出一个图,求出其中的最大生成树= =如果无法产生树,输出-1。 思路:将边权降序再Kruskal,再检查一下是否只有一棵树即可,即根节点只有一个 #include #include #include #include using namespace std; int N, M; // 节点,... ...
分类:
其他好文 时间:
2017-08-20 18:23:01
阅读次数:
105