摘要:
一、定义 1、生成树 在一个无向连通图中,如果存在一个连通子图包含原图中的所有结点和部分边,且这个子图不存在回路,那么该子图被称为原图的一棵生成树。 2、最小生成树 所有生成树中,边权和最小的那一棵(或那几棵)叫做最小生成树(MST)。 二、构造算法 有两种算法来构造最小生成树:普里姆(Prim)算 阅读全文
摘要:
题目链接 http://poj.org/problem?id=1258 题意 有n个农场,现在要在n个农场之间铺设光纤使得n个农场连接起来,求铺设光纤的最短距离。 思路 最小生成树问题,使用Prime算法或者Kruskal算法解决。 代码 Prime算法: Kruskal算法: 阅读全文
摘要:
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1879 思路 这题和hdoj1102很像,图中的有一些路已经修好了,对于这些已经修好的路,我们令还需要修的长度为0即可,然后进行Prime算法或者Kruskal算法。 代码 Prime算法: Kruska 阅读全文
摘要:
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1863 思路 最小生成树问题,使用Prime算法或者Kruskal算法解决。这题在hdoj1233的基础上增加了判断是否能形成最小生成树的要求。 代码 Prime算法: Kruskal算法: 阅读全文
摘要:
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1102 题意 有n个村庄(编号1~n),给出n个村庄之间的距离,开始时n个村庄之间已经有了q条路,现在需要修一条路,这条路连接起所有的村庄,求在已经存在的路径的基础上,最少还需要修多长的路。 思路 普通最 阅读全文
摘要:
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1233 思路 最小生成树问题,使用Prime算法或者Kruskal算法解决。 代码 Prime算法: Kruskal算法: 阅读全文
摘要:
题目链接 http://poj.org/problem?id=1251 题意 有n个村庄,村庄之间有道路连接,求一条最短的路径能够连接起所有村庄,输出这条最短路径的长度。 思路 最小生成树问题,使用普利姆算法(Prime)或者克鲁斯卡尔算法(Kruskal)解决。 代码 Prime算法: Krusk 阅读全文