POJ1258
思路:首先把第一个结点加入树中,每次往树中加入一个结点,加入的结点必须是与当前树中的结点距离最小那个点,这样每次把结点加入树中选取的都是最小权值,循环n-1次后把所有结点都加入树中。
#include
#include
#include
using namespace std;
const int MAXN = 1e9;
//创建map二维数组储存图表,low数组记录每2个点...
分类:
其他好文 时间:
2014-06-19 09:54:24
阅读次数:
255
这题 唯一的价值应该就是 稍微用了下map 同时也算自己对于prim算法的再次练手吧..... touch me其余的 没什么好讲的 就是保留1位小数 这边的数据范围 题目没有给出 我也一直不知道......明天 考6J了.....说些什么 上帝才能听到我的祈求呢~ 1 // TOJ 2119 最....
分类:
其他好文 时间:
2014-06-14 19:07:18
阅读次数:
150
题目链接:Frogger
题意:两只青蛙,A和B,A想到B哪里去,但是A得弹跳有限制,所以不能直接到B,但是有其他的石头作为过渡点,可以通过他们到达B,问A到B的所有路径中,它弹跳最大的跨度的最小值
PS:最小生成树过的,刚开始用Dijstra做,Kao,精度损失的厉害,对于Dijksra的变形不大会变啊,看了Discuss有人用最小生成树过,我一划拉,还真是,敲了,就过了,等会研究研究最...
分类:
其他好文 时间:
2014-06-14 10:35:14
阅读次数:
271
题目:
链接:点击打开链接
题意:
输入n个点,要求选m个点满足连接m个点的m-1条边权值和sum与点的权值和ans最小,即sum/ans最小,并输出所选的m个点,如果有多种情况就选第一个点最小的,如果第一个点也相同就选第二个点最小的........
求一个图中的一颗子树,使得Sum(edge weight)/Sum(point weight)最小~
数据...
分类:
其他好文 时间:
2014-06-14 07:05:34
阅读次数:
350
今天中午做的 第一次用邻接表去实现...我就写了下prim的 相比于kruskal
还是更喜欢它多一点...虽然知道prim+heap优化 可是我写不来.....对于 heap 虽然觉得它的概念很简单 但实现起来真的好伤啊..我想
对于prim的理解应该差不多了 基本上可以直接手码出来了 虽然这个很...
分类:
其他好文 时间:
2014-06-12 06:04:05
阅读次数:
369
最小生成树: 一个连通图的生成树是一个极小连通子图,它含有图中全部顶点,但只有足以构成一棵树的n-1条边。这种构造连通网的最小代价生成树称为最小生成树,详见数据结构之图(术语、存储结构、遍历)。
求连通网的最小生成树有两种经典方法:普里姆(Prime)算法和克鲁斯卡尔(Kruskal)算法。
1、Prime算法
(1)算法描述:假设N=(V,{E})是连通网,TE是N上最小生成树中边的集合。从V中任选一个顶点u0,算法从U={u0}(u0∈V),TE={}开始,重复执行以下步骤:
在所有u∈U、v∈V-U...
分类:
其他好文 时间:
2014-06-10 15:38:52
阅读次数:
211
一、“换边”算法用Kruskal求最小生成树,标记用过的边。求次小生成树时,依次枚举用过的边,将其去除后再求最小生成树,得出所有情况下的最小的生成树就是次小的生成树。可以证明:最小生成树与次小生成树之间仅有一条边不同。这样相当于运行m次Kruskal算法。复杂度O(m^2)示例代码:int
Krus...
分类:
其他好文 时间:
2014-06-09 22:16:39
阅读次数:
348
挺直接的一个题 哎 想复杂了题意:把n*m矩阵中的字母最小生成树求它的边权值之和 只有字母可以分叉
多了一个提取点的过程思路:prime 算法的简单应用#include#include#includeusing namespace std;char
map[55][55];int node[55][...
分类:
其他好文 时间:
2014-06-09 21:29:26
阅读次数:
276
题目意思:有n个村庄,编号1-n,以矩阵的形式给出任意两个村庄之间的距离,然后告诉已经有q个村庄已经修好了路,问现在要打算使所有村庄都联通需要修路的最小长度。
思路就是构造一棵最小生成树,所以将距离排序,从小到大依次并入,直到集合数为1为止。...
分类:
其他好文 时间:
2014-06-08 03:22:29
阅读次数:
289