什么是最小生成树(Minimum Spanning Tree) 每两个端点之间的边都有一个权重值,最小生成树是这些边的一个子集。这些边可以将所有端点连到一起,且总的权重最小 下图所示的例子,最小生成树是{cf, fa, ab} 3条边 Kruskal算法 用到上一篇中介绍的不相交集合(并查集) 首先 ...
分类:
编程语言 时间:
2019-01-16 00:16:57
阅读次数:
255
"传送门" IOI强行交互可还行,我Luogu的代码要改很多才能交到UOJ去…… 发现问题是对边权做限制的连通块类问题,考虑$Kruskal$重构树进行解决。 对于图上的边$(u,v)(u //This code is written by Itst using namespace std; inl ...
分类:
其他好文 时间:
2019-01-12 22:54:36
阅读次数:
304
和dj一个套路,不同点就是d[MAXV]在dj中表示到起点的最短路径,但是在prim中表示的是到树的最小距离 ...
分类:
编程语言 时间:
2019-01-09 21:39:17
阅读次数:
228
"题目链接" 一个严格次小生成树的模板题。 看到次小生成树,我们有一个很直观的想法就是先构造出来最小生成树,然后将这个最小生成树上面最大的一条边替换成和它值最相近而且比他大的边。 那么首先就是用kruskal算法算出来最小生成树,我们称在这个最小生成树上面的边为 树边 (打上标记),不在的边为 非树 ...
分类:
其他好文 时间:
2019-01-05 22:38:19
阅读次数:
146
题目描述 根据输入创建无向网。分别用Prim算法和Kruskal算法构建最小生成树。(假设:输入数据的最小生成树唯一。) 根据输入创建无向网。分别用Prim算法和Kruskal算法构建最小生成树。(假设:输入数据的最小生成树唯一。) 输入 顶点数n n个顶点 边数m m条边信息,格式为:顶点1 顶点 ...
分类:
其他好文 时间:
2019-01-05 12:13:23
阅读次数:
263
最小生成树的形成 (1)一个贪心策略设计如下 每个时刻生长最小生成树的一条边,并在整个策略的实施过程中,遵守下述循环不变式的边集合A: 每一步,选择一条边(u,v)加入集合A,使得A不违反循环不变式。 这样的边使得我们可以“安全地”将之加入到集合A而不会破坏A的循环不变式,因此称之为集合A的“安全边 ...
分类:
编程语言 时间:
2019-01-03 17:32:21
阅读次数:
196
$kruskal$好题 $0$边的数量在某些情况下是可以无限制的调控的,前提是所有必须存在的边都在生成树里了 所以应该分别求出有哪些边是必须在生成树里的,我们可以先从大到小排序,求出有哪些$0$边必须在生成树里,之后再从小到大排序,求出那些$1$边必须在生成树里 之后剩下的边就可以随便放了,调控$0 ...
关键点的最小生成树? 关键点初始化为0,跑多源最短路,然后重构整个图,用Kruskal跑最小生成树 然后跑树链剖分在线回答询问 对树上每个点维护到链顶的最大值,结合线段树可以做到$\Theta(n \log n)$的复杂度 ...
分类:
其他好文 时间:
2018-12-19 16:57:32
阅读次数:
104
堆优化的prim算法(跟dijkstra非常的像) kruskal 个人感觉kruskal比prim跟好写一点 ...
分类:
其他好文 时间:
2018-12-08 11:27:12
阅读次数:
122