随笔分类 -  A-最小生成树

摘要:本文链接:http://www.cnblogs.com/Ash-ly/p/5409904.html 普瑞姆(Prim)算法: 假设N = (V, {E})是连通网,TE是N上最小生成树边的集合,U是是顶点集V的一个非空子集,算法从U = {uo}(u0 属于 V),TE = {}开始,重复执行下述动 阅读全文
posted @ 2016-04-19 20:12 vrsashly 阅读(1078) 评论(0) 推荐(0)
摘要:本文链接:http://www.cnblogs.com/Ash-ly/p/5409265.html 引导问题: 假设要在N个城市之间建立通信联络网,则连通N个城市只需要N - 1条线路。这时,自然会考虑这样一个问题,如何在最省经费的前提下建立这个通信网。 基于问题所建立的定义: 可以用联通网来表示N 阅读全文
posted @ 2016-04-19 18:20 vrsashly 阅读(753) 评论(0) 推荐(0)
摘要:题意: 在南极有 N 个科研站,要把这些站用卫星和无线电连接起来,是的任意两个之间都能互相通信,如果其中任意的一个地方安装了卫星,那么就可以和其他安装卫星的互相通信,和距离没有关系,但是安装无线电 是需要费用D的,这个费用 D 为在安装无线电的地方中使用的无线电通信花费最大的那个值。现在有S个卫星可 阅读全文
posted @ 2016-04-03 12:50 vrsashly 阅读(221) 评论(0) 推荐(0)
摘要:题意: 有许多油井和村庄什么的,让你使得这些村庄能连通一个油井就好了。第一行给你一个数字T代表有T组测试数据,第二行有 M , N , K ,M代表包括油井在内的村庄数,N 代表有N个 两两连通的地方。K代表有K个油井。接下来有N行,每行三个数 u , v, w, 代表 u 号和 v 是连通的 权值 阅读全文
posted @ 2016-04-03 11:31 vrsashly 阅读(285) 评论(0) 推荐(0)
摘要:题意: 在平面上有n个点,要让所有n个点都连通,所以你要构造一些边来连通他们,连通的费用等于两个端点的欧几里得距离的平方。另外还有q个套餐,可以购买,如果你购买了第i个套餐,该套餐中的所有结点将变得相互连通,第i个套餐的花费为ci。求最小花费。 思路: 在这里我们可以采取枚举所有可能 + K算法来得 阅读全文
posted @ 2016-04-03 10:22 vrsashly 阅读(296) 评论(0) 推荐(0)
摘要:题意: 给你一个图,让你求这个图中所有生成树中满足题目条件的,这个条件是生成树中最长边与最短边的差值最小。 思路: 根据最小瓶颈生成树的定义:在一个有权值的无向图中,求一个生成树最大边的权值尽量小。首先以K算法做这道题,先给所有边排好序,然后我可以从小到大枚举每一条边作为我所求生成树的最短边(即第一 阅读全文
posted @ 2016-04-02 20:56 vrsashly 阅读(365) 评论(0) 推荐(0)
摘要:题意: 题意比交难理解,直接描述了,说这里有一些字符串,一个字符串必须由另外一字符串 “衍生” 出来,衍生的价值是 这两个字符串之间的 distance 距离,即俩个字符串的相同位置总共有几个字符不一样。比如 aaaaaaa 和 baaaaaa的 distance 距离为 1;给你 N 个字符串,让 阅读全文
posted @ 2016-04-02 18:52 vrsashly 阅读(230) 评论(0) 推荐(0)
摘要:题意: 给出一个N。接下来有一个N * N的邻接矩阵A,第 i 行 第 j 列代表点 i 和 j 相距A[i][j].求连同所有点的最短路径,求最小生成树即可。 思路: 用P算法,直接用邻接矩阵来存放数据就好了。 阅读全文
posted @ 2016-04-02 17:34 vrsashly 阅读(196) 评论(0) 推荐(0)
摘要:题意: 第一行给一个N,代表这里有N- 1 个村庄,接下来有 N- 1 行,每行开头输入一个大写字母 C 代表第 i 个村庄的编号,随后有一个数字 m 代表 C 这个村庄和 m 个村庄相连,随后再给出 m 组数据,每组输入由一个大写字母 F 和 数字 w 组成,代表 C 和 F 之间的距离为 W;当 阅读全文
posted @ 2016-04-02 17:27 vrsashly 阅读(185) 评论(0) 推荐(0)
摘要:思路: 比较典型的求最小生成树,利用K算法或者P算法,如果在输入时两个村庄的修建状态为 已修建,那么我这里的做法是让他们之间的权值为 0,即修建费用为 0;然后套用算法就好了。 代码P算法: 代码K算法: 阅读全文
posted @ 2016-04-02 17:15 vrsashly 阅读(184) 评论(0) 推荐(0)
摘要:思路: 题目给的是每个小岛的坐标,俩个岛之间的距离等于俩个岛之间的欧几里得距离,然后套用P算法或者K算法就好了。用K算法或者P算法都可以,但是这道题显然需要计算出来每俩个岛之间的距离,这样就有接近V^2/2条边,输入稠密图,所以用P算法会更好点。注意的是题目中说两个岛之间的距离不能大于1000米也不 阅读全文
posted @ 2016-04-02 10:49 vrsashly 阅读(230) 评论(0) 推荐(0)
摘要:思路: 比较典型的最小生成树的题目了、、在这里用求最小生成树的经典算法K(Kruskal)算法和P(Prim)算法。我的 K 算法用的是结构体来存图,P 算法用的是邻接矩阵来存图,K算法的复杂度是O(ElogE),比较适用于稀疏图,P算法的复杂的是O(V ^ 2),适合用稠密图。 以下是C++的K算 阅读全文
posted @ 2016-04-02 10:30 vrsashly 阅读(221) 评论(0) 推荐(0)