![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
最小生成树
TSOI_Vergil
这个作者很懒,什么都没留下…
展开
-
洛谷 1550 最小生成树
首先因为这题是连通性问题求最值,考虑最小生成树是否可做,这题一个比较不同的地方是它每一个点有权值,我们考虑能否将点的权值转化成边权,因为如果能够转化成功,我们就可以很轻松的用最小生成树求解,我们可以建立一个新的虚拟节点,并将所有的点与这个点连一条边权为那些点点权的边,然后在新图中求最小生成树即可#include#include#includeusing namespace std;#d原创 2016-08-16 10:34:32 · 665 阅读 · 0 评论 -
BZOJ 1196 贪心+最小生成树
这道题我们可以贪心,首先按建一级公路的花费从小到大排序,然后用最小生成树的做法选出K条并做好标记,然后再按建一级公路和建二级公路的花费的最小值排序,再做一遍最小生成树,更新答案。这样做的正确性是因为先加入了有用的K条一级公路,并且满足这些公路最大值最小,然后又按照最小生成树的方法加边,又满足后加入的边的最大值最小,因此整个过程都满足最大值最小#include#include#include原创 2016-08-16 10:25:42 · 596 阅读 · 0 评论 -
洛谷 1265
这道题比较麻烦的一点是有条件2的限制,不过,我们可以证明条件2是不可能发生的,假设A要修AC,C要修BC,B要修AB,那么我们通过它们的距离关系推出矛盾。没有了条件2的限制,我们还要有条件3,我们考虑如果我们直接用最小生成树的话是否可以,假设我们当前已经组成了K个连通块,那么在连接任意两个连通块时,选择的边一定是连通这两个连通块的最小边,因此我们可以直接用prim。#include#incl原创 2016-10-22 18:00:08 · 334 阅读 · 0 评论 -
WIKIOI 1001
这道题可以看做是最小生成树的题吧,我们考虑题目要我们找一条路径使得路径上的最大V与最小V比值最小,那么我们考虑如果确定了一个量,问题会变得容易一些,我们可以用并查集来维护路径起点和终点的连通性,首先将边排序,然后对于一个确定的最大V,我们用并查集判断最小的V最大是多少,然后更新答案即可。#include#include#includeusing namespace std;#defin原创 2016-10-22 10:34:18 · 516 阅读 · 0 评论