随笔分类 -  数据结构——LCT

摘要:VIII.[BZOJ2959]长跑 我想把出这么毒瘤的题的人拖出来揍一顿 这题稍微想想,就是动态维护点双连通分量并缩点,然后在缩出来的树上求两点距离。 思想简单但代码极其复杂。 首先,我们可以使用冰茶姬维护点双,所有的点全都并到一个冰茶姬中,除了冰茶姬的象征节点,其它的点一律全都删去,不保留任何信息 阅读全文
posted @ 2021-03-31 16:02 Troverld 阅读(52) 评论(0) 推荐(0) 编辑
摘要:VII.[SHOI2014]三叉神经树 LCT相较于树剖,最大的优势就是可以把一条链上的东西全整到一个splay里面,不像树剖在多个重链进行合并时会有很大麻烦。更好的是,LCT复杂度是O(nlogn)的,树剖不仅码量大,思路复杂,复杂度还是恶心的O(nlog2n)。 这题就是典型的树 阅读全文
posted @ 2021-03-31 16:00 Troverld 阅读(101) 评论(0) 推荐(0) 编辑
摘要:VI.[SDOI2011]染色 你们知道吗?LCT考的就两个,一个pushup,一个pushdown。 这里就是经典的维护颜色段。在每个节点,我们维护四个值:lc,左端颜色;rc:右端颜色;sc:区间颜色段数;col:当前点的颜色。 然后就是经典的老套路了。 阅读全文
posted @ 2021-03-31 15:58 Troverld 阅读(55) 评论(0) 推荐(0) 编辑
摘要:V.[国家集训队]Tree II LCT维护这种东西是要比线段树要恶心的多的……毕竟线段树的区间大小是可以直接通过区间左右端点算出的,但是LCT就不行,必须手动维护。并且,线段树的维护是(左儿子+右儿子),但是LCT的维护是(左儿子+自己+右儿子)! 请务必先把线段树模板做掉,关于运算的优先级什么的 阅读全文
posted @ 2021-03-31 15:57 Troverld 阅读(58) 评论(0) 推荐(0) 编辑
摘要:IV.[NOI2014]魔法森林 前三题都是模板,是为了让我们练手的。 这题才是真正的挑战。 首先,一看这题既不加边也不删边,甚至连树都不是,还是道静态题,并且长得还贼像最小生成树,我就纳闷了,这是LCT? 还真是。 我们可以将边按照a排序。之后,我们维护一个关于b权值的动态最小生成树。 具 阅读全文
posted @ 2021-03-31 15:55 Troverld 阅读(66) 评论(0) 推荐(0) 编辑
摘要:III.[HNOI2010]弹飞绵羊 首先,可以发现,如果从一个装置的目标向这个装置连一条边,并且建立虚拟节点n+1,向所有可以弹飞的装置连边的话,这肯定构成一颗树。 理解就行。然后我们就可以在每个节点统计一个size,并用LCT在改变弹力系数时修改这棵树。则最终答案为: int ask(i 阅读全文
posted @ 2021-03-31 15:53 Troverld 阅读(52) 评论(0) 推荐(0) 编辑
摘要:II.[SDOI2008]洞穴勘测 也是近似的模板题,甚至比模板还要简单,连维护pushup都不需要。 主要是为了多敲几遍熟悉代码。 代码: #include<bits/stdc++.h> using namespace std; #define lson t[x].ch[0] #define 阅读全文
posted @ 2021-03-31 15:51 Troverld 阅读(56) 评论(0) 推荐(0) 编辑
摘要:LCT。 I.LCT可以干什么? 动态树问题, 是近几年在OI中兴起的一种新型问题, 是一类要求维护一个有根树森林, 支持对树的分割,合并等操作的问题。 由Robert E Tarjan为首的科学家们 提出解决算法Link-Cut Tree,简称LCT。 ——《百度百科》 算了,看看就行。 我们唯一 阅读全文
posted @ 2021-03-31 15:49 Troverld 阅读(71) 评论(0) 推荐(0) 编辑

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