随笔分类 - -----数据结构—11.动态树&LCT
摘要:题目链接:hdu 5002 Tree 题意: 给你一棵树,每个节点有个权值。 现在有四种操作 1. 删一条边加一条边,保证操作后还是一棵树。 2. 将一条链的节点的权值设为x. 3. 将一条链的节点的权值加上x. 4. 询问一条链的第二大权值,并且输出有多少个。 题解: 很裸的LCT,维护一下就行了
阅读全文
摘要:题目链接:hdu 5398 GCD Tree 题意: 给你一个n,让你输出一个最大生成树的价值。 有n个点,任意两点有条边,边权为gcd(u,v)。 题解: 由于题意要让你输出所有的1e5内所有的n,所以只能动态维护最大生成树。(LCT可以做到) 显然可能有用的边只能是x向x的因子连的边。 LCT如
阅读全文
摘要:题目链接:hdu 5967 小R与手机 题意: 有n个手机,每个手机有一个呼叫转移。如果形成了环就不能接通。 现在有两个操作: 1 询问打电话x,最终接到的是那个电话,如果有环,输出-1 2 将x的呼叫转移改为y 题解: 用LCT来维护这个森林的关系。 显然要形成环的话,肯定是树跟连向了该树内的点。
阅读全文
摘要:题目链接:BZOJ 2243: [SDOI2011]染色 题意: 给你一棵树,每个点有个颜色,有两个操作。 1 询问一条路径有多少段颜色。 2 将一条路径全部染成一个颜色。 题解: 这题可以用树剖+线段树维护。 但是LCT超级好写。 要注意的就是rev那里要把左右颜色也要换一换。 1 #includ
阅读全文
摘要:题目链接:SPOJ - OTOCI 题意: 给你n个点,有三种操作。 1 将 x y 连接 如果已经连接了,就输出no,否则输出yes 2 将x的权值改为y 3 输出x到y的路径经过的所有点的权值。 题解: LCT的题,很裸。 1 #include<bits/stdc++.h> 2 #define
阅读全文
摘要:题目链接:BZOJ 2002: [Hnoi2010]Bounce 弹飞绵羊 题意: 有n个节点,每个节点有个弹力系数xi,表示第i个节点可以弹到i+xi,如果超过了n就弹飞。 现在有两个操作: 1 x 询问从x开始要弹几次才能弹飞。 2 x y 将x的弹力系数更改为y。 题解: 这题可以分块可以LC
阅读全文
摘要:题目链接:BZOJ 2049: [Sdoi2008]Cave 洞穴勘测 题意: 三个操作. 1 链接x y 2 断开x y 3 询问x y是否连通 题解: LCT裸题 1 #include<bits/stdc++.h> 2 #define F(i,a,b) for(int i=a;i<=b;i++)
阅读全文
摘要:题目链接:hdu 4010 Query on The Trees 题意: 给你一棵树,有4种操作。 1 连接x,y. 2 断开x,y. 3 将x到y这条路径加上一个值w. 4 询问x到y这条路径的最大值. 题解: LCT必做题,全是LCT操作。 1 #include<bits/stdc++.h> 2
阅读全文

浙公网安备 33010602011771号