![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
最小生成树
文章平均质量分 72
KirinSB
这个作者很懒,什么都没留下…
展开
-
POJ 1751 Highways(最小生成树&Prim)题解
思路:一开始用Kruskal超时了,因为这是一个稠密图,边的数量最惨可能N^2,改用Prim。Prim是这样的,先选一个点(这里选1)作为集合A的起始元素,然后其他点为集合B的元素,我们要做的就是每次找到B中的一个点,满足这个点到A的权值是B到A的权值中最小的,然后我们把这个点加入到A,再更新B中的点到A的最小距离。代码:#include<cstdio>#include<cma...原创 2018-07-09 15:52:01 · 174 阅读 · 0 评论 -
POJ1251 Jungle Roads (最小生成树&Kruskal)题解
题意:输入n,然后接下来有n-1行表示边的加边的权值情况。如A 2 B 12 I 25 表示A有两个邻点,B和I,A-B权值是12,A-I权值是25。求连接这棵树的最小权值。思路:一开始是在做莫队然后发现没学过最小生成树,就跑过来做模板题了...Kruskal的使用过程:先按权值大小排序,然后用并查集判断是否能加这条边Kruskal详解博客:【贪心法求解最小生成树之Kruskal算法详细分析】--...原创 2018-06-26 23:32:04 · 134 阅读 · 0 评论 -
POJ3241 Object Clustering(最小生成树)题解
题意:求最小生成树第K大的边权值思路:如果暴力加边再用Kruskal,边太多会超时。这里用一个算法来减少有效边的加入。边权值为点间曼哈顿距离,那么每个点的有效加边选择应该是和他最近的4个方向的点。这里用一个树状数组维护以y-x为索引的y+x的值,然后这个数组所储存的就是一个点的第一象限方向的距离他最近的点。这样我们每次查找只要看(i,N)这个区间是否有一个点的距离比现在的更小(因为以y-x为索引,...原创 2018-07-01 11:30:15 · 265 阅读 · 0 评论