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 · 343 阅读 · 0 评论 -
小B的图( LCT维护最小生成树)
#include<bits/stdc++.h>#define maxn 500005#define inf 0x3f3f3f3f3f3f3f3fll#define LL long longusing 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 · 449 阅读 · 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 · 494 阅读 · 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 · 340 阅读 · 0 评论 -
SDOI2017 树点涂色(LCT维护到根颜色段)
题目#include<bits/stdc++.h>#define maxn 100005#define lc u<<1#define rc u<<1|1using namespace std;int n,m;int info[maxn],Prev[maxn<<1],to[maxn<<1],cnt_e;void Node...原创 2020-04-29 11:54:45 · 218 阅读 · 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 · 413 阅读 · 0 评论 -
LCT进阶操作:子树查询
具体的思想就是,我们的LCT看似只能用Splay维护链上的信息,但是我们可以再开一个数组把虚儿子的信息加到点上(如果可加的话),那么一条链的总信息就是这条链及其下面的虚儿子的总和,就是这条链的链顶的子树和。如果我们access了一个点,那么这个点的所有虚儿子的和+他自己就是他的子树和(因为下面没有重儿子)。模板题注意需要维护虚儿子信息的只有access和link,因为access会执行到最上面...原创 2019-03-19 17:10:01 · 623 阅读 · 0 评论 -
BZOJ 3514: Codechef MARCH14 GERALD07加强版(LCT+主席树)
题目一个直观的想法:如果题目保证随时是一颗树就好了。那么答案就 = n - (R - L + 1)一个合理的联想:我可不可以通过对边的统计得到答案?如果我们把[L,R][L,R][L,R]中的边拿出来做克鲁斯卡尔,边权为边编号。那么一条边联通两个联通块,使联通块数量减小,当且仅当它是第一条连接这两个联通块的。像:区间查询颜色种类,每个颜色第一次出现才会有贡献。那么我们求出来每条边uu...原创 2019-03-20 15:54:59 · 180 阅读 · 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 · 256 阅读 · 0 评论
分享