LCT
文章平均质量分 68
HeartFireY
可能是ACMer、JXNU计算机科学协会前会长
展开
-
[LCT刷题][LCT+SAM+SegTree模板] 区间本质不同子串个数
然后考虑如何消除重复贡献:我们需要找到前序子串最后一次出现的位置,于是我们就利用后缀自动机的ParentTree,只需要沿着ParentTree到根节点的路径从下向上,所经过的节点一定都是以。但是不能一个一个节点的消贡献,考虑用线段树维护区间和,用LCT维护这条到根节点的实链,然后利用Access操作消除贡献即可。首先非常显然的是:维护区间不同的XXX一般要先离线一下。我们就直接离线询问,然后按右端点加入贡献。为右端点的子串,那么只需要维护。数组然后消掉贡献就可以了。原创 2022-10-22 15:42:22 · 276 阅读 · 0 评论 -
[LCT刷题][边双缩点] P2542 [AHOI2005] 航线规划
需要注意的是,在LCT中的所有获取祖先操作都要套并查集的祖先查询,否则查到的不一定是真实的父亲(因为点可能已经被缩进边双了)。考虑使用LCT+并查集维护边双缩点,对于每次连接的两个点检查是否位于同一连通块,如果不同则连边,否则就进入缩点,将。实际上LCT上不连父亲边也没关系,因为LCT上寻找父亲依赖并查集,而并查集维护了父亲信息。递归并查集合并并清空点,然后用并查集的祖先点作为缩点后的点连接到。首先将删边操作转化为离线逆序加边操作。以此来维护边双缩点。缩点的过程类似这样…原创 2022-10-21 22:42:19 · 246 阅读 · 0 评论 -
[LCT刷题][树链信息维护] P4332 [SHOI2014]三叉神经树
把黑题看成蓝题结果想了老半天感觉不对劲本题对于理解SplaySplaySplay和LCTLCTLCT结构具有至关重要的意义,值得反复思考。可能因为我比较菜。原创 2022-10-21 15:26:03 · 609 阅读 · 0 评论 -
[LCT刷题][连通性维护] P3950 部落冲突
链接:https://www.luogu.com.cn/problem/P3950。原创 2022-10-20 17:04:53 · 157 阅读 · 0 评论 -
[LCT 刷题][树链信息维护] P2486 [SDOI2011]染色
题目要求维护树上序列不同颜色段数,涉及到树链的性质,因此考虑用LCT解决。但是我们可以发现:颜色段计数跟线段树有点不一样。我们需要对树链上的每条边进行转换,将两个端点共色的边设为000,异色的设为111,那么最终答案就变成了树链上的和。但是我们发现这个题涉及了动态修改,因此我们需要单独的维护每条边,即在LCT的Splay节点上维护每个节点xxx自身的颜色xcxcxc,其左儿子的颜色lclclc,其右儿子的颜色rcrcrc,然后考虑如何上传答案:我们将上传分为三种情况讨论: 当前节点xxx与其左右儿子都异色,原创 2022-10-20 14:35:42 · 315 阅读 · 0 评论 -
[LCT刷题][树链信息维护] P1501 [国家集训队]Tree II
要求维护树上路径和,支持乘法、加法。考虑如何使用LCT维护。首先LCT自带的反转标记仍然需要,在此基础上增加乘法标记和加法标记,然后会发现:标记无法像线段树一样用“区间长度”乘标记维护,因为LCT不具有区间长度规律。因此再记录一个sizesizesize表示所在辅助森林中的SplaySplaySplay子树大小,那么就可以实现标记下放:对于所有的操作,首先splitsplitsplit提取链,然后再对链进行操作即可。注意别抄错板子。原创 2022-10-19 22:36:17 · 229 阅读 · 0 评论