MST
文章平均质量分 79
kdqzzxxcc
这个作者很懒,什么都没留下…
展开
-
POJ 3522 Slim Span MST变形
题意:给你N,M,表示N个节点,M条边。接下来给出M条边。求生成一棵树之后,树中最长的路和最短的路的差值最小。求出,若没有则输出-1.思路:进行多次kruskal算法,每次找出差值,进行更新,最后输出差值。#include #include #include #include #include #include #include #include #include #原创 2012-08-12 15:15:10 · 822 阅读 · 0 评论 -
POJ1679 The Unique MST
题意:判断最小生成树是否唯一思路:第一次用kruskal求出最小生成树,记为ans,然后依次去除已经选进来的边,进行kruskal,如果ans==kruskal()的话,则输出不唯一。注意:1.第一次求kruskal时记得要先判断是否能生成最小生成树(但是我没判断就A了。。理论上来说是要判断的。。)2.注意存放变的数组开大一点。我用G++交了几次一直WA,原代码改成C++交就RE,然后原创 2012-08-11 16:33:23 · 983 阅读 · 1 评论 -
POJ 1751 Highways 最小生成树
题意:给出一个N,代表N个小镇。接下来N行每行一个坐标(x,y)代表第i个小镇的坐标。再给出一个M,代表已经修好了几条路,接下来M行,每行2个数(i,j)代表第i个小镇和第j个小镇是有路的。问你最少还要修多少条路,并把每条路连接的两个小镇输出来。因为是spj,所以就输出的时候就没管顺序了。这道题一看就知道是纯MST,我也顺手就做了。交了20次左右,各种TLE,终于被我A了~~然原创 2012-08-04 13:40:14 · 709 阅读 · 0 评论 -
POJ2263&&1797 最大生成树
两题都是求最大生成树中的最小值。当找到起点与终点的时候退出。没什么陷阱,直接贴代码。1797#include #include #include #include #include #include #include #include #include #include #include #include #define Max 100000#define原创 2012-08-18 14:00:30 · 1288 阅读 · 1 评论 -
HDU 4081 MST
这道题在LRJ的书上看到,今天回过头来继续看这题,发现很多东西都已经明白了。题意:有N个城市,每个城市有一个坐标和人口。现在要建一些边使得他们都联通,花费就是这些边的长度,然后有一条边可以免费。问免费一条边之后,使得免费的该条边的两个城市的人口/剩下来的边的长度 ,这个比值最大。思路:首先做一遍MST,求出MST之后,我们枚举每条边,看这条边是否可以删除,也就是免费。那么删除一条边原创 2013-09-22 00:59:12 · 1136 阅读 · 0 评论 -
HDU 4756 次小生成树
题意:给你n(n = 1000)个二维点,第一个点是power plant,还有n - 1个点是dormitories。然后现在知道有一条寝室到寝室的边是不能连的,但是我们不知道是哪条边,问这种情况下,最小生成树的最大值。思路:有一种很朴素的算法就是枚举每一条被删除的边,然后做最小生成树,复杂度高的突破天际,显然不可以。但是既然想到了上面的那种做法,再想一下就可以得到,我们还是枚举每一条被原创 2013-09-23 20:56:48 · 2268 阅读 · 0 评论 -
HDU 4126 MST
这道题和HDU4756是完全一样的。http://blog.csdn.net/just_water/article/details/11950623题意:给你一个无向图,有N个点M条边,然后Q个询问,每次询问x , y , z ,意思是边x -> y 的变长增加成z (一定是增加) 。然后问增加之后的最小生成树。最后输出Q次询问后最小生成树的平均值。思路:和上一题完全一样,原创 2013-09-23 21:45:46 · 1022 阅读 · 0 评论