随笔分类 -  图论——生成树

摘要:Description 给定一张无向图,边有a,b两种边权,求一条1~n的路径,使得路径上a最大值与b最大值之和尽可能小 Solution LCT维护生成树 将边按照a从小到大排序,然后顺序考虑每一条边 如果当前这条边的两个端点没有联通,那么直接在LCT上连边即可 如果当前这条边的两个端点已经连通, 阅读全文
posted @ 2019-08-15 09:44 AD_shl 阅读(226) 评论(0) 推荐(0)
摘要:Description 给定一张n个点,m条边的无向图,求出边权最大值和最小值差值最小的生成树 Solution LCT+并查集 按照最小生成树的思路,先将边按照边权从小到大排序,然后顺序考虑每一条边 如果当前这条边的两个端点没有连通,那么直接连通 如果两个端点已经连通,我们加上这条边会形成一个环, 阅读全文
posted @ 2019-08-14 20:38 AD_shl 阅读(264) 评论(0) 推荐(0)
摘要:读完题,我产生了一个显然的想法:先求出这张图的最大生成树,然后再dfs一遍求出联通块的个数(图可能不连通),之后这张图变成了一棵树,题目就变成了在一棵树上给定一条路径,求这条路径上最小的边权是多少。(-1的情况可以通过并查集直接判断)。 考虑一条路路径(x,y),我们可以把它拆分成(x,lca(x, 阅读全文
posted @ 2019-05-02 15:27 AD_shl 阅读(254) 评论(0) 推荐(0)
摘要:这是一道最小生成树相关的题目 题目要求在一棵最小生成树的基础上增加一些边变成一张完全图,但是这张图的最小生成树仍然是原来的树,求增加的边的边权的和最小是多少。 我们首先将边按照边权升序排列,像kruskal一样,之后我们扫描每一条边,设当前的边(x,y,z),x所在的并查集为Sx,y所在的并查集为S 阅读全文
posted @ 2019-04-30 23:21 AD_shl 阅读(168) 评论(0) 推荐(0)