Link-Cut Tree
小蒟蒻yyb
Studnet
展开
-
【BZOJ3669】【Noi2014】魔法森林(Link-Cut Tree)
题面题目描述为了得到书法大家的真传,小 E 同学下定决心去拜访住在魔法森林中的隐 士。魔法森林可以被看成一个包含 n 个节点 m 条边的无向图,节点标号为 1,2,3,…,n,边标号为 1,2,3,…,m。初始时小 E 同学在 1 号节点,隐士则住在 n 号节点。小 E 需要通过这一片魔法森林,才能够拜访到隐士。魔法森林中居住了一些妖怪。每当有人经过一条边的时候,这条边上的妖怪 就会对其发起攻击。幸原创 2017-11-18 18:33:14 · 202 阅读 · 0 评论 -
【BZOJ2959】长跑(Link-Cut Tree,并查集)
题面BZOJ题解如果保证不出现环的话 妥妥的LCTLCT傻逼题现在可能会出现环 环有什么影响? 那就可以沿着环把所有点全部走一遍吧 所以,相当于把环看成一个点来搞一搞所以,维护一个并查集 记录一下每个点被缩成了哪个点 然后再用LCTLCT维护缩点后的树就行啦#include<iostream> #include<cstdio> #include<cstdlib> #include<cst原创 2018-01-22 22:00:22 · 206 阅读 · 0 评论 -
【BZOJ1969】航线规划(Link-Cut Tree)
题面BZOJ题解删边操作 套路呀 离线读入倒过来做 变成加边操作现在考虑怎么确定两点直接的关键路径条数 如果是一棵树,那么每条边都是关键路径 在一棵树的基础上 如果连接了两点 那么,两点之间原来的路径一定都不是关键路径 所以,弄一个LCTLCT 每次维护加边#include<iostream> #include<cstdio> #include<cstdlib> #include<原创 2018-01-17 22:01:01 · 424 阅读 · 0 评论 -
【Luogu1501】Tree(Link-Cut Tree)
题面洛谷题解LCTLCT版子题 看到了顺手敲一下而已 注意一下,别乘爆了#include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<cmath> #include<algorithm> #include<set> #include<map> #include<vector> #include<q原创 2018-01-19 20:32:14 · 169 阅读 · 0 评论 -
【BZOJ2843】极地旅行社(Link-Cut Tree)
题面BZOJ题解LCTLCT模板题呀 没什么好说的了。。#include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<cmath> #include<algorithm> #include<set> #include<map> #include<vector> #include<queue> usi原创 2018-02-09 19:13:32 · 164 阅读 · 0 评论 -
【UOJ207】共价大爷游长沙(Link-Cut Tree,随机化)
题面UOJ题解这题太神了 %%%myy\%\%\%myy看到动态的维护边很容易的想到了LCTLCT 然后能否堵住一条路 我们也不难想到,以这条路的一个端点为根的子数 是否恰好包含了集合中所有点对的中的恰好一个点但是怎么算恰好包括了一个点。。。 不会呀。。。%%%myy\%\%\%myy神奇的随机算法 对于每个点对, 就给这两个点随便随机一个点权 维护子树异或和 这样就可以检查子树异原创 2018-02-06 12:47:50 · 172 阅读 · 0 评论 -
【BZOJ2555】SubString(后缀自动机,Link-Cut Tree)
题面BZOJ题解这题看起来不难 每次要求的就是right/endposright/endpos集合的大小 所以搞一个LCTLCT维护一下SAMSAM的ParentParent树就好了 但是代码一点都不好写(我还是对着黄学长的调的。。。) 于是乎我也学着魔改了一下LCTLCT#include<iostream> #include<cstdio> #include<cstdlib> #inclu原创 2018-02-14 17:12:35 · 201 阅读 · 0 评论 -
【BZOJ4817】树点涂色(LCT,线段树,树链剖分)
题面BZOJDescriptionBob有一棵n个点的有根树,其中1号点是根节点。Bob在每个点上涂了颜色,并且每个点上的颜色不同。定义一条路 径的权值是:这条路径上的点(包括起点和终点)共有多少种不同的颜色。Bob可能会进行这几种操作: 1 x: 把点x到根节点的路径上所有的点染上一种没有用过的新颜色。 2 x y: 求x到y的路径的权值。 3 x y: 在以x为根的子树中选择一个点原创 2018-03-24 17:20:48 · 191 阅读 · 0 评论 -
【SPOJ】QTREE6(Link-Cut-Tree)
题面Vjudge题解很神奇的一道题目 我们发现点有黑白两种,又是动态加边/删边 不难想到LCTLCT最爆力的做法,显然是每次修改单点颜色的时候 暴力修改当前点和它的父亲以及儿子之间的连边状态但是这样显然是假的(菊花树了解一下)怎么优化呢? 对于每次操作,我们考虑如何只修改一次。 对于树上的一个结点,如果只修改一次,显然是修改和其父亲的状态。 那么,我们在考虑LCTLCT的连边操作的时候,原创 2018-04-08 22:30:09 · 224 阅读 · 0 评论 -
【BZOJ4825】【HNOI2017】单旋(Link-Cut Tree)
题面题面太长,懒得粘过来题解既然题目让你写Spaly 那就肯定不是正解 这道题目,让你求的是最大/最小值的深度 如果有LCT,答案就很容易求 直接用LCT维护这棵Spaly试试。。。手玩发现,最大/最小值旋到根 就是把它的儿子给父亲, 然后root直接变成它的儿子 它变成root 于是乎,每次的操作之和两个点有关 在LCT中维护点在Spaly上的父子关系 这样后面四个操作就解决了原创 2017-12-30 08:35:46 · 185 阅读 · 0 评论 -
【BZOJ2157】旅游(树链剖分,Link-Cut Tree)
题面 Description Ray 乐忠于旅游,这次他来到了T 城。T 城是一个水上城市,一共有 N 个景点,有些景点之间会用一座桥连接。为了方便游客到达每个景点但又为了节约成本,T 城的任意两个景点之间有且只有一条路径。换句话说, T 城中只有N − 1 座桥。Ray 发现,有些桥上可以看到美丽的景色,让人心情愉悦,但有些桥狭窄泥泞,令人烦躁。于是,他给每座桥定义一个愉悦度w,也就是说原创 2017-11-18 22:37:32 · 200 阅读 · 0 评论 -
【BZOJ2002】弹飞绵羊(Link-Cut Tree)
题面题目描述某天,Lostmonkey发明了一种超级弹力装置,为了在他的绵羊朋友面前显摆,他邀请小绵羊一起玩个游戏。游戏一开始,Lostmonkey在地上沿着一条直线摆上n个装置,每个装置设定初始弹力系数ki,当绵羊达到第i个装置时,它会往后弹ki步,达到第i+ki个装置,若不存在第i+ki个装置,则绵羊被弹飞。绵羊想知道当它从第i个装置起步时,被弹几次后会被弹飞。为了使得游戏更有趣,Lostmon原创 2017-11-16 23:48:54 · 165 阅读 · 0 评论 -
【BZOJ2049】洞穴勘测(Link-Cut Tree)
题面题目描述辉辉热衷于洞穴勘测。某天,他按照地图来到了一片被标记为JSZX的洞穴群地区。经过初步勘测,辉辉发现这片区域由n个洞穴(分别编号为1到n)以及若干通道组成,并且每条通道连接了恰好两个洞穴。假如两个洞穴可以通过一条或者多条通道按一定顺序连接起来,那么这两个洞穴就是连通的,按顺序连接在一起的这些通道则被称之为这两个洞穴之间的一条路径。 洞穴都十分坚固无法破坏,然而通道不太稳定,时常因为外界影响原创 2017-11-16 23:52:30 · 181 阅读 · 0 评论 -
【BZOJ3282】Tree (Link-Cut Tree)
题面BZOJ权限题呀,良心luogu上有题解Link-Cut Tree班子提 最近因为NOIP考炸了 学科也炸了 时间显然没有 以后再来填LCT的坑 这种题目直接上代码了。。#include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<cmath> #include<algorithm> #原创 2017-11-16 23:43:42 · 204 阅读 · 0 评论 -
【BZOJ2816】【ZJOI2012】网络(Link-Cut Tree)
题面题目描述有一个无向图G,每个点有个权值,每条边有一个颜色。这个无向图满足以下两个条件:对于任意节点连出去的边中,相同颜色的边不超过两条。图中不存在同色的环,同色的环指相同颜色的边构成的环。 在这个图上,你要支持以下三种操作:修改一个节点的权值。修改一条边的颜色。查询由颜色c的边构成的图中,所有可能在节点u到节点v之间的简单路径上的节点的权值的最大值。输入输出格式输入格式: 输入文件netwo原创 2017-12-02 15:01:41 · 160 阅读 · 0 评论 -
【BZOJ3626】LCA(树链剖分,Link-Cut Tree)
题面Description给出一个n个节点的有根树(编号为0到n-1,根节点为0)。一个点的深度定义为这个节点到根的距离+1。 设dep[i]表示点i的深度,LCA(i,j)表示i与j的最近公共祖先。 有q次询问,每次询问给出l r z,求sigma_{l<=i<=r}dep[LCA(i,z)]。 (即,求在[l,r]区间内的每个节点i与z的最近公共祖先的深度之和)Input第一行2个整数n原创 2017-12-31 21:35:04 · 278 阅读 · 0 评论 -
【BZOJ5020】【THUWC2017】在美妙的数学王国中畅游(Link-Cut Tree,组合数学)
题解Description数字和数学规律主宰着这个世界。 机器的运转, 生命的消长, 宇宙的进程, 这些神秘而又美妙的过程无不可以用数学的语言展现出来。 这印证了一句古老的名言: “学好数理化,走遍天下都不怕。” 学渣小R被大学的数学课程虐得生活不能自理,微积分的成绩曾是他在教室里上的课的最低分。然而他的某位陈姓室友却能轻松地在数学考试中得到满分。为了提升自己的数学课成绩,有一天晚上(原创 2017-12-26 15:04:27 · 437 阅读 · 0 评论 -
【BZOJ4736】温暖会指引我们前行(Link-Cut Tree)
题面神TM题面是UOJ的题解LCT傻逼维护最大生成树 不会的可以去做一做魔法森林#include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<cmath> #include<algorithm> #include<set> #include<map> #include<vector> #includ原创 2018-01-02 19:01:40 · 245 阅读 · 0 评论 -
【BZOJ4530】大融合(Link-Cut Tree)
题面讨厌权限题!!! Loj链接题目描述小强要在 N个孤立的星球上建立起一套通信系统。这套通信系统就是连接 N个点的一个树。这个树的边是一条一条添加上去的。在某个时刻,一条边的负载就是它所在的当前能够联通的树上路过它的简单路径的数量。例如,在上图中,现在一共有五条边。其中,(3,8)这条边的负载是 6,因为有六条简单路径 2−3−8, 2−3−8−7, 3−8, 3−8−7, 4−3−8, 4−3原创 2018-01-22 15:32:09 · 226 阅读 · 0 评论 -
【SPOJ】QTREE7(Link-Cut Tree)
题面洛谷 Vjudge题解和QTREE6的本质是一样的:维护同色联通块那么,QTREE6同理,对于两种颜色分别维护一棵LCTLCT 每次只修改和它父亲的连边。 考虑如何维护最大值 因为每次accessaccess会删去一个数,所以我们肯定不能够只维护最大值。 因此,对于每一个节点,额外维护一个multisetmultiset(当然,可删堆,mapmap之类的也行) 每次用multiset原创 2018-04-09 17:27:27 · 146 阅读 · 0 评论