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

摘要:II.[APIO2013]道路费用 这个k,明显就很可以2k枚举掉有哪些边出现在MST上。但是,如何设置权值使得要求出现的边全数出现呢? 我们考虑裸的Kruskal算法。首先,先用冰茶姬将要求出现的边加入生成树(明显此时如果已经出现了环,则此边集本身即不合法,可以直接跳过该边集),然后将原 阅读全文
posted @ 2021-04-06 14:32 Troverld 阅读(74) 评论(0) 推荐(0) 编辑
摘要:XVI.二分图 /【模板】线段树分治 本题有两种做法。一是所谓的“正解”线段树分治,复杂度O(nlognlogk)。思路比较简单,敲起来也简单,就是复杂度不太优秀。 代码: #include<bits/stdc++.h> using namespace std; #define lson 阅读全文
posted @ 2021-03-31 16:19 Troverld 阅读(75) 评论(0) 推荐(0) 编辑
摘要:X.[WC2006]水管局长 或许我这题应该放到V.[NOI2014]魔法森林前面的QaQ? 这题首先一眼看出翻转加边顺序。然后,动态维护最小生成森林,这样保证最小生成森林上的路径上的最大值就是原图中路径的最大值的可能的最小值。反正随便写写就行了。 代码: #include<bits/stdc++. 阅读全文
posted @ 2021-03-31 16:06 Troverld 阅读(36) 评论(0) 推荐(0) 编辑
摘要:IV.[NOI2014]魔法森林 前三题都是模板,是为了让我们练手的。 这题才是真正的挑战。 首先,一看这题既不加边也不删边,甚至连树都不是,还是道静态题,并且长得还贼像最小生成树,我就纳闷了,这是LCT? 还真是。 我们可以将边按照a排序。之后,我们维护一个关于b权值的动态最小生成树。 具 阅读全文
posted @ 2021-03-31 15:55 Troverld 阅读(66) 评论(0) 推荐(0) 编辑
摘要:这里是Kruskal重构树学习笔记。 Kruskal重构树,是用于求出有关一张图中,某点仅经过边权 某个值 v 的边所得到的子图的有关信息的工具。 但事实上,其应用还有更多。 我们先讲述其构造方法: 将所有边按照边权递增排序。 依次枚举每一条边。假如此时边的两个端点处于两个 阅读全文
posted @ 2021-03-31 15:47 Troverld 阅读(212) 评论(0) 推荐(0) 编辑
摘要:CXXXVII.[国家集训队]Tree I 两年前刚学MST时做这题WA了,然后两年后才把它补上…… 明显直接wqs二分就行了。 代码: #include<bits/stdc++.h> using namespace std; int n,m,q,dsu[50100],ip; int read(){ 阅读全文
posted @ 2021-03-31 15:13 Troverld 阅读(47) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示