Description现在给出了一个简单无向加权图。你不满足于求出这个图的最小生成树,而希望知道这个图中有多少个不同的最小生成树。(如果两颗最小生成树中至少有一条边不同,则这两个最小生成树就是不同的)。由于不同的最小生成树可能很多,所以你只需要输出方案数对31011的模就可以了。Input第一行包含...
分类:
其他好文 时间:
2015-02-01 23:11:48
阅读次数:
198
题目大意:给你N个字符串,每个字符串代表一个结点,每个结点之间的距离为字符串中
不同字符的个数。比如:"abaaaaa"和"aabaaaa",第二个和第三个字符不同,两个结点
之间的距离就是2。以此类推,得到所有的结点。求所有结点构成图的最小生成树。
思路:按题意算出各结点之间的距离,存入图中,用Prim算法求解,注意输出格式。...
分类:
其他好文 时间:
2015-01-24 18:49:58
阅读次数:
198
题目描述:
N个点M条边的有向连通图,每条边有一个权值,求该图的最小生成树。
Input
第1行:2个数N,M中间用空格分隔,N为点的数量,M为边的数量。(2 <= N <= 1000, 1 <= M <= 50000)
第2 - M + 1行:每行3个数S E W,分别表示M条边的2个顶点及权值。(1
OutPut
输出最小生成树的所有边的权值之和。
Input示例
...
分类:
其他好文 时间:
2015-01-11 21:41:07
阅读次数:
200
Description现在给出了一个简单无向加权图。你不满足于求出这个图的最小生成树,而希望知道这个图中有多少个不同的最小生成树。(如果两颗最小生成树中至少有一条边不同,则这两个最小生成树就是不同的)。由于不同的最小生成树可能很多,所以你只需要输出方案数对31011的模就可以了。Input第一行包含...
分类:
Web程序 时间:
2015-01-10 23:28:37
阅读次数:
232
题目大意:
给你一个n,m,表示一个无向图G中有n个点,m条边,m>=n-1,然后保证前n-1条边可以构成一棵生成树,然后问对于每条边应该如何修改权值使得前n-1条边构成的生成树是图的最小生成树。输出每条边修改后的值
解题思路:
首先想了很久都没有思路,然后最后怂了,看了别人的题解才发现这么神奇,这题的正解是KM
观察题目我们发现,对于前n-1条边,我们需要的就是将其改小,...
分类:
其他好文 时间:
2015-01-05 09:34:52
阅读次数:
365
题目大意:给你N个点M条边的图,问:图的最小生成树是否唯一。
思路:参考算法书,在kruskal算法的基础上进行修改,加入(x,y)两点在最小生成树
上路径最长的边的计算。使用了链式前向星记录每个集合中含有那些点。
在合并集合(邻接表)的时候,为了方便,加入了End[]记录邻接表尾节点的位置。
MST表示最小生成树的大小,SecMST表示次小生成树的大小。最后判断是否想等
即可。...
分类:
其他好文 时间:
2014-12-28 00:31:28
阅读次数:
187
题目大意:给你一个图,求连接所有点的最短路径。
思路:Prim算法求图的最小生成树,模板题。...
分类:
其他好文 时间:
2014-12-23 22:39:58
阅读次数:
186
两天和作一天吧只要是作 prime 算法的实现,作用是找一个图的最小生成树,用的是列表void Prim( ListMatrix *G, int start )/* * 寻找一某一点为核心的最佳布线 * 即使用prime最小生成树 */ { struct{ ...
分类:
其他好文 时间:
2014-12-12 22:02:40
阅读次数:
197
最小生成树在含有n个顶点的连通图中选择n-1条边,构成一棵极小连通子图,并使该连通子图中n-1条边上权值之和达到最小,则称其为连通网的最小生成树。例如,对于如上图G4所示的连通网可以有多棵权值总和不相同的生成树。克鲁斯卡尔算法介绍克鲁斯卡尔(Kruskal)算法,是用来求加权连通图的最小生成树的算法...
分类:
编程语言 时间:
2014-12-05 21:09:16
阅读次数:
348
普里姆(Prim)算法,和克鲁斯卡尔算法一样,是用来求加权连通图的最小生成树的算法。基本思想对于图G而言,V是所有顶点的集合;现在,设置两个新的集合U和T,其中U用于存放G的最小生成树中的顶点,T存放G的最小生成树中的边。 从所有u?U,v?(V-U) (V-U表示出去U的所有顶点)的边中选取权值最...
分类:
编程语言 时间:
2014-12-05 21:00:18
阅读次数:
285