随笔分类 - 数据结构--lct
摘要:"传送门" 解题思路 第二个操作其实就是把$T$在$S$上跑一遍匹配然后输出最后那个匹配点$right$集合的大小。现在考虑如何动态维护,发现$right$集合的转移为$siz_{fa_i}=\sum siz_i$,那么假如一个字符其实就是给$parent$树上这个点的每个祖先$+1$,这样就可以$
阅读全文
摘要:"传送门" 解题思路 $lct$维护最小生成树。我们首先按照$a$排序,然后每次加入一条边,在图中维护一棵最小生成树。用并查集判断一下$1$与$n$是否联通,如果联通的话就尝试更新答案。 代码
阅读全文
摘要:"传送门" 解题思路 一道$lct$维护动态最小生成树。刚开始写了一遍疯狂$Re$,冷静了一下重新写了一遍终于过了。首先题目中要求两点之间最大值的最小值,其实就是维护一个最小生成树,每次询问最大值。要将删边转化成加边操作,就是倒着处理,这里用$set$和$map$就比较方便。然后还要把边权转化成点权
阅读全文
摘要:"传送门" 解题思路 板子题$WA$了三次。。我在丢人。 代码 cpp include include include include include using namespace std; const int MAXN = 10005; inline int rd(){ int x=0,f=1;
阅读全文
摘要:题面 Description 在X星球上有N个国家,每个国家占据着X星球的一座城市。由于国家之间是敌对关系,所以不同国家的两个城市是不会有公路相连的。 X星球上战乱频发,如果A国打败了B国,那么B国将永远从这个星球消失,而B国的国土也将归A国管辖。A国国王为了加强统治,会在A国和B国之间修建一条公路
阅读全文
摘要:"传送门" 解题思路 跟 "重组病毒" 这道题很像。只是有了一个询问$2$的操作,然后询问$2$的答案其实就是$val[x]+val[y] 2 val[lca(x,y)]+1$(画图理解)。剩下的操作跟那道题就一样了。 代码 cpp include include include include i
阅读全文
摘要:Description 小强要在N个孤立的星球上建立起一套通信系统。这套通信系统就是连接N个点的一个树。 这个树的边是一条一条添加上去的。在某个时刻,一条边的负载就是它所在的当前能够 联通的树上路过它的简单路径的数量。 例如,在上图中,现在一共有了5条边。其中,(3,8)这条边的负载是6,因 为有六
阅读全文
摘要:题面 escription 黑客们通过对已有的病毒反编译,将许多不同的病毒重组,并重新编译出了新型的重组病毒。这种病毒的繁殖和变异能力极强。为了阻止这种病毒传播,某安全机构策划了一次实验,来研究这种病毒。 实验在一个封闭的局域网内进行。局域网内有n台计算机,编号为1~n。一些计算机之间通过网线直接相
阅读全文
摘要:"传送门" 解题思路 $lct$,比较模板的一道题,路径加和乘的维护标记与线段树$2$差不多,然后剩下就没啥了。但调了我将近一下午。。 代码 cpp include include include include include define int long long using namespac
阅读全文
摘要:"传送门" 解题思路 $lct$就是基于实链剖分,用$splay$来维护每一条实链,$lct$的维护对象是一棵森林。$lct$支持很多神奇的操作: $1、$ $access$:这是$lct$的核心操作,就是将一个点与根打通,就是把路径上的所有边变成实边,具体就是转到根,换儿子,更新信息。 $2、$$
阅读全文

浙公网安备 33010602011771号