LCT
文章平均质量分 83
neither_nor
这个作者很懒,什么都没留下…
展开
-
BZOJ4545 DQS的trie
造一个广义后缀自动机,LCT维护即可,询问1可以在插入的时候直接维护#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define MAXN 2000原创 2016-04-30 13:25:57 · 878 阅读 · 0 评论 -
BZOJ4764 弹飞大爷
弹飞绵羊仙人掌版环套树版lct维护动态环套树考虑用和动态仙人掌一样的方法,给所有在环上的点都打一个环标记,值等于根的编号这样的话在link和cut的时候各种特判然后维护环编号即可判forever就是看根有没有环编号注意换根之后把根换回原来的注意cut根和根指向的环上点的情况注意各种情况……#include#include#include#include#in原创 2017-02-24 07:07:24 · 899 阅读 · 4 评论 -
BZOJ4817 [Sdoi2017]树点涂色
BZOJ3779重组病毒弱化版注意到染色相当于在LCT上access这个点,一个点到根路径上颜色段数就是LCT上虚边的个数在access的时候同时在线段树上维护一下子树加减即可2操作就算出来两个点到根的答案,再减去LCA到根的答案*2,交界的地方特殊算算第三问就之间线段树询问区间最值就行#include#include#include#include#include#原创 2017-04-11 17:12:34 · 488 阅读 · 0 评论 -
BZOJ3779 重组病毒
诶,卡常数差评用LCT维护链上颜色段数和x的子树内所有的点到x的颜色段数之和,时限题里的操作,查询的时候把这跟到x的链信息和x的子树信息合并起来就可以出解了因为就是一个普通的LCT,所以复杂度是n log n 的这里就说一下每个变量是什么,具体怎么维护就看代码把LCT上有虚边和实边,实边就是儿子认爹、爹也认儿子,虚边就是儿子认爹爹不认儿子实子树即x在splay上的子树(包括比x原创 2016-05-29 13:47:49 · 1076 阅读 · 3 评论 -
UOJ#274 BZOJ4736 【清华集训2016】温暖会指引我们前行
边权LCT维护最大生成树即可据说考场上围绕这题题意还产生了纠纷……不过反正就是最大生成树喽边权LCT可以看这里#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespa原创 2017-03-04 17:50:17 · 1032 阅读 · 2 评论 -
BZOJ3091 城市旅行
快一个月不更博了……打破沉寂的居然不是THUWC记这种水文,真是感动这题的话答案等于sigma a[i]*i在的子串数量/总共的子串数量即sigma a[i]*(l[i]*r[i]+len)/(n*(n+1)/2)len是询问链的长度,l[i]和r[i]是在i这个点左右的点的个数那么考虑LCT,然后对每条链维护sigma l[i]*r[i]*a[i],sigma l[i]*a[i]原创 2017-02-15 19:22:12 · 406 阅读 · 0 评论 -
LCT维护子树信息(子树信息LCT) LCT维护边权(边权LCT) 知识点讲解
扯淡(前言)众所周知LCT可以支持关于点权的链修改,换根,LINK,CUT和查询链信息操作,但是总有那么些神犇(毒瘤)出题人会让你在支持链修改,换根,LINK和CUT操作的情况下去支持子树查询,或者维护关于边权的链修改,换根,LINK,CUT和链查询。网上似乎讲解这两种LCT写法的blog比较少或者不怎么能搜到?总之我来写一发(LCT基础知识回顾)为了方便说话先说一下下面可能出现的原创 2016-10-31 10:07:26 · 9377 阅读 · 15 评论 -
BZOJ2752 [HAOI2012]高速公路(road)
3091双倍经验把3091代码粘过来然后边权转点权就好了……知识点分到LCT里是不是不太好啊#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#原创 2017-02-18 09:08:51 · 724 阅读 · 0 评论 -
BZOJ3510 首都
到所有点距离和最小的点就是重心因为只有link操作,我们可以考虑启发式合并,这样最多会有n log n次“插入一个叶子节点”操作一棵树插入一个叶子节点之后,重心要么不变,要么向叶子的方向移动一条边,移动的条件是叶子所在的子树大小*2大于这棵树的大小(或者相等取编号小的)用LCT维护子树大小即可#include#include#include#include#include原创 2016-09-28 10:41:17 · 1128 阅读 · 0 评论 -
BZOJ4530 [Bjoi2014]大融合
LCT维护子树大小即可对于每个点维护siz代表splay上的子树大小,SIZ代表不在splay上的子树大小,Siz代表连在这个点上的虚子树的大小的和旋转、access和link的时候更新这三个值即可#include#include#include#include#include#include#include#include#include#include#incl原创 2016-05-19 13:38:27 · 2975 阅读 · 0 评论 -
BZOJ3159 决战
如果不考虑链翻转,剩余操作都可以用LCT轻松维护考虑链翻转,我们之所以不能直接再LCT上链翻转,是因为LCT的splay中序遍历还担负着维护深度信息的任务,而我们可以让LCT的splay只维护深度信息,对LCT中的每一个splay T,我们再开一个splay T',同样是以深度有序,维护T中的点的权值,在access操作过程中同时把T'进行与T相同的操作为了找到与T对应的T',我们在结构s原创 2016-08-18 19:24:01 · 1605 阅读 · 0 评论 -
BZOJ2908 又是nand
额……这个……嗯……为什么今天写题解这么蛋疼……写之前想了半天是写链剖还是写LCT,最后决定写LCT……结果写了两句发现nand这个破操作不但不满足交换律,还TM不满足结合律……这TM上哪维护去但是这是位运算啊有独立性的,所以每个点维护每一位本来是0和1,进行了这一溜操作之后变成啥,然后就可以维护了,LCT搞搞就行了其实我看这道题之前一直以为nand是个名字……-_-#includ原创 2016-08-15 17:28:32 · 669 阅读 · 0 评论 -
BZOJ3637 Query on a tree VI
挺厉害的题考虑用LCT分别维护黑森林和白森林,并维护子树大小但是直接暴力link cut的话复杂度是跟度数相关的,就T了那么我们维护有根森林,并保证在黑森林中每个连通块除了根一定是黑的,白森林中每个连通块除了根一定是白的(事实上我们会发现这样的话只有原树的根是不一定什么颜色的,对于其他的连通块的根,颜色一定是与这个连通块里其余的点不同的)那么修改的时候就只需要把修改点与他的父亲之间原创 2017-05-03 16:39:11 · 647 阅读 · 0 评论