
LCT
y_immortal
蒟蒻蒟蒻
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
洛谷4299首都(LCT维护动态重心+子树信息)
题目链接这个题目很有意思QWQ根据题目描述,我们可以知道,首都就是所谓的树的重心,那么我们假设每颗树的重心都是rootrootroot的话,对于每次询问,我们只需要findroot(x)findroot(x)findroot(x)就可以。那么如何处理linklinklink操作呢QWQ这里是看了题解,我才知道是怎么做的大致的思想就是:!启发式合并!首先,这里需要注意树的中心具有的两...原创 2018-11-25 18:27:15 · 372 阅读 · 0 评论 -
洛谷3613睡觉困难综合征(LCT维护链信息(前后缀)+贪心)
题目链接这个题目还是很好啊QWQ很有纪念意义首先,如果在序列上且是单次询问的话,就是一个非常裸的贪心了QWQ这也是NOI当时原题的问题和数据范围我们考虑上树的话,应该怎么做?我的想法是,对于每一位建一个LCT来做,然后对一个点x维护,当前是0到链顶的结果,当前是1到顶的结果,当前是0到底的结果,当前是1到底的结果(之所以维护后两个是因为reversereversereverse操作的存在)...原创 2018-11-26 21:50:09 · 194 阅读 · 0 评论 -
洛谷3721 HNOI2017单旋(LCT+set+思维)
题目链接这题难道不是spaly裸题吗?言归正传QWQ一看到这个题目,其实第一反应是很懵X的从来没有见过类似的题目啊,什么spalyspalyspaly,单旋。QWQ很懵逼啊不过,我们可以注意到这么一件事情,就是我们对于树中元素移动的时候,只会移动min或者maxmin或者maxmin或者max。那么会不会有什么性质呢QWQ经过手玩,以maxmaxmax为栗,我们可以发现我们将这个点...原创 2018-11-30 11:29:06 · 190 阅读 · 0 评论 -
洛谷4847 银河英雄传说(LCT+LCSPLAY)
题目链接QWQ硬是把一个splaysplaysplay好题,做成了LCTLCTLCT首先,根据题目性质,我们可以发现序列之间是具有前后性质的。那么,我们就不可以进行makerootmakerootmakeroot等操作。我们定义findroot(x)表示x所在splay最前面的点(深度最小的点)findroot(x)表示x所在splay最前面的点(深度最小的点)findroot(x)表示x...原创 2018-12-03 00:41:56 · 219 阅读 · 0 评论 -
洛谷3703 SDOI2017树点涂色(LCT+线段树+dfs序)
题目链接又一道好题啊qwqqqq一开始看这个题,还以为是一个树剖的什么毒瘤题目(不过的确貌似可以用树剖啊)qwq这真是一道LCTLCTLCT维护颜色的好题首先,我们来一个一个操作的考虑。对于操作111来说,我们是不是就相当于把1 x1~x1 x的路径,弄成一个独立的联通块?哎,这个貌似是access(x)access(x)access(x)的操作理念啊QWQ假设...原创 2018-12-04 00:15:55 · 236 阅读 · 0 评论 -
洛谷T31018 经典题丶改(LCT+离线)
真的是一个大好题啊!QWQ首先我们考虑这种问题,如果直接在线做,估计应该是做不了,那我们是不是可以直接考虑离线。将所有询问都按照rrr来排序。然后依次加入每条边,计算a[i]<=nowra[i]<=nowra[i]<=nowr的答案离线下来之后呢。我们对于依次加入的边,实际上就相当于一个维护生成树的过程,那么qwq应该以什么为关键字呢?由于我们可以精妙...原创 2018-12-04 08:13:26 · 251 阅读 · 0 评论 -
洛谷4322 SHOI2014 三叉神经树(LCT+思维)
题目链接好久之前做的题了QWQ现在来补一发博客一道神仙题啊。。qwq首先,我们可以看出来,我们如果对于每个点维护一个valvalval,表示他的直系儿子中有几个表现为1的。那么val[x]>>1val[x]>>1val[x]>>1 就是他反应的类型这样十分便于我们计算一开始的valvalval那么考虑修改。一定是会...原创 2018-12-04 09:18:04 · 269 阅读 · 0 评论 -
洛谷2543AHOI2005]航线规划 (树剖+线段树+割边思路)
这个题的思路还是比较巧妙的。首先,我们发现操作只有删除和询问两种,而删除并不好维护连通性和割边之类的信息。所以我们不妨像WC2006水管局长那样,将询问离线,然后把操作转化成加边和询问。然后,我们会发现,若存在一条边x−>yx->yx−>y,那么原本x到y的所有割边,都会变成非割边。那意味着什么呢?似乎加边操作,可以直接转化成区间修改。那我们就可以首先...原创 2018-12-24 14:53:43 · 396 阅读 · 0 评论 -
SP16549 QTREE6 - Query on a tree VI (LCT)
这个题的思路还是很巧妙的。发现查询的信息不是关于黑色或者白色,而是相同颜色,所以不能仅仅用一颗树来做了那么考虑建立黑白两棵树。一个比较暴力的思想就是每次换颜色,然后暴力的断掉目前的所有边,然后和与翻转颜色之后 与之相同的点进行连边,但是这样的方法在菊花图的时候是不对的一个非常巧妙的思路,将颜色从点转到边上,也就是说我们以1为根的话,若当前在黑色树中存在i→fa[i]i\rightarrow...原创 2019-03-12 10:21:43 · 245 阅读 · 0 评论 -
洛谷3348 大森林 (LCT + 虚点 + 树上差分)
题目链接这可真是道神仙题QWQ问了好多dalaodalaodalao才稍微明白了一丢丢做法首先,我们假设不存在111操作,那么对于询问的一段区间中的所有的树,他们的形态应该是一样的甚至可以直接理解为000操作就是表示所有树的生成节点都添加一个儿子其实就算存在111操作,也是类似同理的.这样考虑:考虑如果在 lll处更换了生长节点,那么就相当于把第 l−1l−1l−1 棵树之后生长的节点...原创 2018-11-29 21:01:53 · 208 阅读 · 0 评论 -
洛谷4219 BJOI2014大融合(LCT维护子树信息)
题目链接QWQ这个题目是LCT维护子树信息的经典应用根据题目信息来看,对于一个这条边的两个端点各自的sizesizesize乘起来,不过这个应该算呢?我们可以考虑在LCT上多维护一个xv[i]xv[i]xv[i]表示iii的虚子树的子树和,然后维护sum[i]sum[i]sum[i]表示iii的虚+实子树之和。那么对于一个点xxx,他在原树上的字数大小就应该是size=xv[x]+sum...原创 2018-11-25 14:11:29 · 185 阅读 · 0 评论 -
SPOJ2939 QTREE5(LCT维护子树信息)
题目链接QWQ嘤嘤嘤此题正规题解应该是边分治??或者是树剖(总之不是LCT)但是我这里还是把它当成一个LCT题目来做首先,这个题的重点还是在update上因为有makerootmakerootmakeroot这个操作的存在,所以自然避免不了reversereversereverse,而当reversereversereverse之后,会影响到每个点维护的值的时候,就需要同时维护两个相反的...原创 2018-11-25 19:16:43 · 189 阅读 · 0 评论 -
洛谷3950 部落冲突(LCT维护连通性)
题目链接看题目也是个比较裸的题目了QWQ不想多说了开战就是cutcutcut,停战就是linklinklink就当记录一个板子了!// luogu-judger-enable-o2#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#incl...原创 2018-11-25 19:52:05 · 191 阅读 · 0 评论 -
LCT模板(学习笔记)(洛谷3690)(加边,删边,修改点权)
题目链接最近学习了一波LCT qwq强势安利Flashhu的博客!!!!!真的特别详细(可惜我不会弄链接)如果有想要学习LCTLCTLCT的同学,可以直接看他的博客我这里就简单写一点自己的体会啊。LCTLCTLCT大致上就是一个支持加边,删边,维护子树信息,路径修改,维护路径信息的一个数据结构本质上LCT是一个实虚链划分代码的话,主要是分为几个部分首先是判断这个点是不是根 和 其...原创 2018-11-24 18:38:36 · 386 阅读 · 0 评论 -
洛谷3203 弹飞绵羊(LCT)
题目链接据说这个题当年的正解是分块qwq根据题目所说,对于题目中的弹力系数,就相当于一条边,那么对于“跳出去”这个限制,我们可以选择建造一个新点n+1n+1n+1表示结束,那么每次,求一个点要多少次跳出去,只需要求n+1n+1n+1到xxx的点数,然后减1就行直接上代码// luogu-judger-enable-o2#include&lt;iostream&gt;#include&l...原创 2018-11-24 18:53:42 · 177 阅读 · 0 评论 -
洛谷1501 Tree II(LCT,路径修改,路经询问)
题目链接这个题是一个经典的维护路径信息的题,对于路径上的修改,我们只需要把对应的链splitsplitsplit上来,然后修改最上面的点就好,注意pushdown的时候的顺序是先乘后加然后下传乘法标记的时候,记得把对应的addaddadd标记也要乘,因为就跟线段树的下传标记类似// luogu-judger-enable-o2#include&lt;iostream&gt;#includ...原创 2018-11-24 19:39:17 · 383 阅读 · 0 评论 -
洛谷2387 NOI2014魔法森林(LCT维护最小生成树)
题目链接本题是运用LCT来维护一个最小生成树。是一个经典的套路题目中求的是一个max(ai)+max(bi)max(a_i)+max(b_i)max(ai)+max(bi)尽可能小的路径。那么这种的一个套路就是,先按照一维来排序,然后用LCT维护另一维那么这个对于这个题来说,我们考虑,可以先按照a从小到大排序,然后顺次加入每条边,这样每次加入的边一定是有可能会更新到ansansans...原创 2018-11-24 20:58:02 · 257 阅读 · 0 评论 -
洛谷4172 WC2006水管局长(LCT维护最小生成树)
题目链接这个题和魔法森林感觉有很相近的地方啊同样也是维护一个类似最大边权最小的生成树但是不同的是,这个题是有cutcutcut和询问,两种操作…这可如何是好啊?我们不妨倒着来考虑,假设所有要cutcutcut的边全都不存在,倒序做这个问题,不就是相当于在支持linklinklink操作吗?那么就和之前的问题大致上是一样的了对于u−&gt;vu-&gt;vu−>v...原创 2018-11-25 12:39:36 · 199 阅读 · 0 评论 -
洛谷4234最小差值生成树 (LCT维护生成树)
题目链接这也是一道LCT维护生成树的题。那么我们还是按照套路,先对边进行排序,然后顺次加入。不过和别的题有所不同的是:在本题中,我们需要保证LCT中正好有n−1n-1n−1条边的时候,才能更新ansansans其次,更新答案的时候,已知我们的边是最小的边,所以我们要考虑删除最大的边来考虑更新答案,而求最大边的过程,可以通过visvisvis打标记,加一个指针随时维护来解决最后一件事!!...原创 2018-11-25 13:52:30 · 197 阅读 · 0 评论 -
SP16580 QTREE7 - Query on a tree VII(LCT)
和QTree6QTree6QTree6的思路类似。同样是两棵树,同样是维护那些信息,但是这次变成了维护最值。那么维护虚+实的mxmxmx数组肯定是照常维护。但是虚子树的应该怎么办呢?考虑到涉及到撤销这个东西,所以需要multisetmultisetmultiset(注意删除一个值的时候,要删除地址而不是那个值)我们可以对于每个点都开一个multisetmultisetmultiset来...原创 2019-03-12 10:27:49 · 205 阅读 · 1 评论