题目大意:给定一棵 N 个点的树,边有边权,定义“线树”为一个图,其中图的顶点是原树中的边,原树中两条有公共端点的边对应在线图中存在一条边,边权为树中两条边的边权和,求线图的最小生成树的代价是多少。 题解: 对于树中的一个顶点来说,假设有 M 条边以该顶点为一个端点,那么这 M 条边对应到线图中的顶 ...
分类:
其他好文 时间:
2019-07-20 13:16:27
阅读次数:
105
思路:枚举边集,最小生成树 提交:1次 题解:(如思路) 2019.07.20 ...
分类:
其他好文 时间:
2019-07-20 13:05:25
阅读次数:
107
原题传送门 这道题目基本就是一个克鲁斯卡尔最小生成树的模板题,唯一不同的是,这道题目的最终目标不是所有点相连,而是只要s和t相连就可以了。还有就是这道题目求的是最小生成树中的最大边权值。但是,克鲁斯卡尔是从最小的边权值开始考虑的,当s和t第一次连通时考虑的那条边,就是当前考虑的最大的权值的边,直接输 ...
分类:
编程语言 时间:
2019-07-19 15:36:04
阅读次数:
121
原题传送门 这道题用最小生成树来完成,我选用的是kruskal(克鲁斯卡尔)来完成。这道题目在克鲁斯卡尔模板的基础上,有变动的地方只有2处:1.因为必须从一个点出发,而最小生成树最后会让所有点都连通,所以最优的是从c[i]值最低的点出发,所以最后的total要加上最小的c[i]值。2.因为这道题目的 ...
分类:
编程语言 时间:
2019-07-19 15:26:20
阅读次数:
119
两个最小生成树算法, 都有一个共同的思想: 这棵树是一点一点长大的; 并且每次生长, 都是贪心的. 不同之处是: Kruscal算法是以边为中心的, 每次找最小的并且有用的边添加到树上; Prim算法是以点为中心的, 每次找离树最近的点添加到树上. 我们可以把一棵树理解成一个有智能的生命, 可以感知 ...
分类:
编程语言 时间:
2019-07-19 15:22:43
阅读次数:
152
tree 内存限制:512 MiB 时间限制:3000 ms 标准输入输出 题目类型:传统 评测方式:文本比较 题目描述 给你一个无向带权连通图,每条边是黑色或白色。让你求一棵最小权的恰好有need条白色边的生成树。题目保证有解。 题目描述 给你一个无向带权连通图,每条边是黑色或白色。让你求一棵最小 ...
分类:
其他好文 时间:
2019-07-17 19:12:46
阅读次数:
122
次小生成树,就是求除了最小生成树之外最小的那个生成树。 下面介绍一下利用prim求次小生成树的主要步骤。 1.先求出来最小生成树。并将最小生成树任意两点之间路径当中的权值最大的那一条找出来,为什么要找最大的呢,因为生成树加入一条边之后一定构成了回路,那么肯定要去掉这个回路当中一条边才是生成树,那么, ...
分类:
其他好文 时间:
2019-07-17 09:26:00
阅读次数:
109
给定一个n个点m条边的无向图,图中可能存在重边和自环,边权可能为负数。 求最小生成树的树边权重之和,如果最小生成树不存在则输出impossible。 给定一张边带权的无向图G=(V, E),其中V表示图中点的集合,E表示图中边的集合,n=|V|,m=|E|。 由V中的全部n个顶点和E中n-1条边构成 ...
分类:
编程语言 时间:
2019-07-17 00:00:33
阅读次数:
117
最小生成树 首先来看看什么是最小生成树。 在一个无向连通图中,如果存在一个连通子图包含原图中所有的结点和部分边,且这个子图不存在回路(不成环),那么我们称这个子图为原图的一棵生成树。在带权图中,所有的生成树中边权的和最小的那棵(或几棵)被称为最小生成树。 注:图为无向图,红字表示边的权值,橙线表示不 ...
分类:
其他好文 时间:
2019-07-16 11:01:20
阅读次数:
91
[Time Gate] https://www.luogu.org/problemnew/show/P2872 【解题思路】 一道最小生成树的基本题吧,这里要注意两点 1.数组范围要开大,毕竟是生成树,开n平方即可 2.求边上权值算两点之间距离要注意精度的问题,多强制转换几次(double)防止WA ...
分类:
其他好文 时间:
2019-07-14 23:55:02
阅读次数:
187