
LCT
文章平均质量分 81
AbEver
孤单是一个人的狂欢
展开
-
BZOJ 2594: [Wc2006]水管局长数据加强版(LCT+最小生成树+离线)
题目戳我Solution题目大意:就是让你维护一棵动态的最小生成树, 并询问两点路径中边权最大值。很明显,用LCT来做这个。有几个关键点: ①删边维护mst不好搞,我们离线然后删边变加边。 ②一开始用kruskal搞出底图的mst,然后加边,判断一条路径的最大值是否大于当前边的长度,是就替换掉原先的边。因为这样答案肯定不会差。 ③注意答案的保存及下标的转换等大量细节。 ④一开始建底图时找出有原创 2017-06-29 15:07:10 · 717 阅读 · 0 评论 -
BZOJ 2002: [Hnoi2010]Bounce 弹飞绵羊(LCT)
Description某天,Lostmonkey发明了一种超级弹力装置,为了在他的绵羊朋友面前显摆,他邀请小绵羊一起玩个游戏。游戏一开始,Lostmonkey在地上沿着一条直线摆上n个装置,每个装置设定初始弹力系数ki,当绵羊达到第i个装置时,它会往后弹ki步,达到第i+ki个装置,若不存在第i+ki个装置,则绵羊被弹飞。绵羊想知道当它从第i个装置起步时,被弹几次后会被弹飞。为了使得游戏更有趣,Lo原创 2017-06-29 12:43:43 · 386 阅读 · 0 评论 -
BZOJ 2049: [Sdoi2008]Cave 洞穴勘测(LCT)
Description辉辉热衷于洞穴勘测。某天,他按照地图来到了一片被标记为JSZX的洞穴群地区。经过初步勘测,辉辉发现这片区域由n个洞穴(分别编号为1到n)以及若干通道组成,并且每条通道连接了恰好两个洞穴。假如两个洞穴可以通过一条或者多条通道按一定顺序连接起来,那么这两个洞穴就是连通的,按顺序连接在一起的这些通道则被称之为这两个洞穴之间的一条路径。洞穴都十分坚固无法破坏,然而通道不太稳定,时常因为原创 2017-07-02 16:54:39 · 461 阅读 · 0 评论 -
BZOJ 2959: 长跑(LCT+并查集)
题目传送门题目大意就是三个操作: ①将点A,B连一条无向边 ②改变点A的权值 ③问你从A到B的路径的权值和,其中边可以重复一个方向走,点可以重复走但权值只算一次。题解如果没有①②且给出的是树的话,就是一个求LCA。 如果没有①操作而是给出一个静态的树的话,那么就是一个树链剖分了。 如果保证是树(森林)的话,那就直接做一个LCT就行了。关键就是它是一个图。 显然,如果A,B在一个环中的话,原创 2017-07-07 14:44:04 · 732 阅读 · 0 评论 -
hdu 5002 Tree (LCT)
Problem DescriptionYou are given a tree with N nodes which are numbered by integers 1..N. Each node is associated with an integer as the weight.Your task is to deal with M operations of 4 types:1.Delet原创 2017-07-08 12:40:16 · 401 阅读 · 0 评论 -
洛谷 P3613 睡觉困难综合征(Link-Cut Tree+贪心+一堆位运算)
题目传送门https://www.luogu.org/problemnew/show/P3613#sub题解之前在某tu的博客里看到这题,许久没碰LCT,就翻出来做。由于上一篇博客的公式敲到我呕心沥血、自废双臂,所以还是没有公式的数据结构题好。首先考虑一条路径,一个数从那里走一遍,由于二进制里的每一位是独立、互不影响的,于是我们可以每一位分开考虑。这样只用考虑每一位选0或1从路径经过后的答案即可。明原创 2018-02-28 13:42:55 · 454 阅读 · 0 评论 -
UOJ #207. 共价大爷游长沙(不用维护子树的LCT)
传送门题目大意:自己看题目吧。。思路这题真是机巧。为每一条路径随机一个权值,记录每条边上的异或值。对于一条删边,将其权值异或到新的路径上,用LCT维护。判断一条边是否被所有路径经过只用判断异或和是否相等就行了。中间要用map等小技巧,还是比较简单的,不用维护任何东西。但是难想。第一次写随机数冲突了,srand(num)比较可行。还有就是每次询问之前别忘了splay一下。还有一种维护子树异或和的做法,原创 2018-03-26 22:24:06 · 282 阅读 · 0 评论 -
BZOJ 4530: [Bjoi2014]大融合(LCT维护子树大小)
题目描述权限传送门题目大意:一个图,动态加边。保证不会出现环,问你一条边被多少条路径经过。点数和询问数不超过10^5.思路LCT维护子树大小。每个LCT上的点,维护其全子树大小sum_siz,虚子树(虚边连出去的子树)大小siz。一个点本身的大小算进siz里,在Splay过程中维护sum_siz,即sum_siz=son[0]->sum_siz+son[1]->sum_siz+siz。对于全子树大小原创 2018-03-27 10:26:04 · 423 阅读 · 0 评论