![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LCT
Freopen
这个作者很懒,什么都没留下…
展开
-
Bohemian Rhapsody(指针版LCT)
这个。缩点相当于把树上一个路径上的边权从1变成0,因为只需要最后输出答案,实际上一个l,r,u,vl,r,u,vl,r,u,v就是从左到右lll时刻到rrr时刻u,vu,vu,v之间的边被缩起来了,考虑把缩起来的路径,看做路径加一,我们维护每条边的贡献(szx∗(n−szx)sz_x * (n-sz_x)szx∗(n−szx)),那么答案就是值为000的路径贡献和,因为000一定是路径上的最小值(最小值不一定是000),所以我们维护最小值所在位置的贡献和,和最小值即可维护答案。 写LCT O.原创 2020-05-20 20:56:31 · 282 阅读 · 0 评论 -
小B的图( LCT维护最小生成树)
#include<bits/stdc++.h> #define maxn 500005 #define inf 0x3f3f3f3f3f3f3f3fll #define LL long long using namespace std; char cb[1<<16],*cs=cb,*ct=cb; #define getc() (cs==ct&&(ct=(cs=cb)+fread(cb,1,1<<16,stdin),cs==ct)?0:*cs++) t..原创 2020-05-19 15:51:25 · 368 阅读 · 0 评论 -
Nauuo and ODT(LCT维护连通块)
题面 思路简单 颜色数∗路径数−∑c是一种颜色不包含c的路径数颜色数 * 路径数 - \sum_{c是一种颜色} 不包含c的路径数颜色数∗路径数−∑c是一种颜色不包含c的路径数 所以我们考虑颜色ccc, 我们把所有不是颜色ccc的点都看作黑色,否则是白色。 所以不包含ccc的路径数是黑色连通块的大小平方和。 考虑我们用LCT维护黑色连通块。 发现当一个点的颜色改变时会有O(出度)O(出度)O(出...原创 2020-05-06 15:55:04 · 400 阅读 · 0 评论 -
LOJ #6041. 「雅礼集训 2017 Day7」事情的相似度(SAM,LCT)
题目 建后缀自动机,答案变为求[l,r][l,r][l,r]中两个后缀的lcalcalca最大深度。 从[1...r]access[1...r]access[1...r]access,维护每个splaysplaysplay的最晚被访问时间,那么如果在rrr的accessaccessaccess到了一个最晚被访问时间为xxx的点yyy,那么[1...x,r][1...x,r][1...x,r]的答案...原创 2020-04-29 14:47:41 · 203 阅读 · 0 评论 -
SDOI2017 树点涂色(LCT维护到根颜色段)
题目 #include<bits/stdc++.h> #define maxn 100005 #define lc u<<1 #define rc u<<1|1 using namespace std; int n,m; int info[maxn],Prev[maxn<<1],to[maxn<<1],cnt_e; void Node...原创 2020-04-29 11:54:45 · 171 阅读 · 0 评论 -
「WC2018」即时战略(LCT/动态点分治)
题目 其实是一道很清新的动态点分练习题。 AC Code\rm AC \ CodeAC Code #include "rts.h" #include <bits/stdc++.h> #define rep(i, j, k) for (int i = (j), LIM = (k); i <= LIM; i++) #define per(i, j, k) for ...原创 2020-01-17 16:13:59 · 346 阅读 · 0 评论 -
LCT进阶操作:子树查询
具体的思想就是,我们的LCT看似只能用Splay维护链上的信息,但是我们可以再开一个数组把虚儿子的信息加到点上(如果可加的话),那么一条链的总信息就是这条链及其下面的虚儿子的总和,就是这条链的链顶的子树和。如果我们access了一个点,那么这个点的所有虚儿子的和+他自己就是他的子树和(因为下面没有重儿子)。 模板题 注意需要维护虚儿子信息的只有access和link,因为access会执行到最上面...原创 2019-03-19 17:10:01 · 516 阅读 · 0 评论 -
BZOJ 3514: Codechef MARCH14 GERALD07加强版(LCT+主席树)
题目 一个直观的想法:如果题目保证随时是一颗树就好了。 那么答案就 = n - (R - L + 1) 一个合理的联想:我可不可以通过对边的统计得到答案? 如果我们把[L,R][L,R][L,R]中的边拿出来做克鲁斯卡尔,边权为边编号。 那么一条边联通两个联通块,使联通块数量减小,当且仅当它是第一条连接这两个联通块的。 像:区间查询颜色种类,每个颜色第一次出现才会有贡献。 那么我们求出来每条边uu...原创 2019-03-20 15:54:59 · 105 阅读 · 0 评论 -
Codeforces Round #545 (Div. 1)
A. Skyscrapers 给出n*m个数,每个位置都有相应的数值,然后对于每一个位置, 将该数字行、列的数字单独拿出来离散化后 (该离散化只需要满足行中数的大小关系不变,列中数的大小关系不变), 最大的那个值。 n,m<=1000,aij<=109n,m<=1000,a_{ij}<=10^9n,m<=1000,aij<=10...原创 2019-05-15 08:30:03 · 167 阅读 · 0 评论