
lct
overcastt
这个作者很懒,什么都没留下…
展开
-
hdu 4010 Query on The Trees
hdu4010 多组测试数据 四个要求:1、把x与y连起来 2、把x转到跟,把y与此时y的父亲切开..(买看清这个..导致一直..mle【再见【再见【再见) 3、把x到y这一条路径都加上z 4、输出x到y这条路径上最大的数#include <cstdio>#include <algorithm>using namespace std;#define ...原创 2018-03-01 21:02:14 · 162 阅读 · 0 评论 -
bzoj3669/lg2387:[NOI2014]魔法森林(LCT)
bzoj3669/lg2387:[NOI2014]魔法森林 题意简单来说,就是找到一条1到n的路径,使得这条路径上最大的A妖怪数+B妖怪数最小显然,这是一道维护边权的题,那我们就把边权拆成点权 这道题要维护两种怪物数,因此我们可以按A从小到大排序,然后去比较B的数 对于每一条边 x-&gt;y,若之前不连通,连上即可 若联通,那就说明,如果这条边再加进去,x-&gt;y部分就会出现环,...原创 2018-06-11 08:22:58 · 210 阅读 · 0 评论 -
lg3950 部落冲突 (lct)
lg3950就是lct,维护一下连通性 维护相通性的时候,可以用并查集维护吧 但也可以通过找根操作来看是否联通 如果x、y在一棵树上,那么x、y他们这棵树不管怎么转,做左边的点一定是一样的 因此findroot时,找到最左边的点,看是否一样inline int findroot(int x){ access(x);splay(x); //把x转到根 ...原创 2018-06-11 07:57:03 · 258 阅读 · 0 评论 -
bzoj4530/lg4219 [BJOI2014]大融合 (lct维护子树信息)
bzoj4530/lg4291 需要维护子树个数.. 在lct中维护两个值:size[x](x的所有子树个数和)、isize[x](与x通过虚边链接的子树个数和)#include &lt;cstdio&gt;#define N 100010int n,m,ch[N][2],size[N],isz[N],fa[N],rev[N];inline bool isroot(int x){re...原创 2018-06-10 23:05:01 · 212 阅读 · 0 评论 -
lg1501:[国家集训队]Tree II(lct)
lg1501 这题需要维护的比较多啊,乘法下放标记、加分下放标记、数值、和 要注意因为有乘法和加法、所以下放时应当先下放乘法、再下放加法 还有..要用long long哦,因为51061*51061超int了…#include <cstdio>#include <algorithm>using namespace std;#define N 100010#...原创 2018-06-10 22:29:47 · 196 阅读 · 0 评论 -
LCT应用
LCT,就是一个拥有link、cut……诸多操作的高级数据结构了吧 这么高级的数据结构,应用有很多啦 维护链的信息 这个就是最基本的操作了,就和平横数一样该维护什么维护什么就好啦 bzoj2002: [Hnoi2010]Bounce 弹飞绵羊 维护下个数吧...原创 2018-06-12 08:35:25 · 440 阅读 · 0 评论 -
bzoj3283:Tree 和 lg3680
bzoj3283lct模板吧..要维护好哦#include <cstdio>#include <algorithm>using namespace std;#define N 330000int sum[N],ch[N][2],a[N],fa[N],rev[N],n,m;void update(int p){sum[p]=sum[ch[p][0]]^a...原创 2018-02-25 23:01:23 · 169 阅读 · 0 评论 -
bzoj2049 :[Sdoi2008]Cave 洞穴勘测
第一道lct!贼开心 这篇讲的真的很好诶 lctbzoj2049 这道题就..两个操作…#include &lt;cstdio&gt;#include &lt;algorithm&gt;using namespace std;#define N 11000int ch[N][2],rev[N],fa[N],n,m;bool isroot(int x){return x!...原创 2018-02-25 21:02:24 · 157 阅读 · 0 评论 -
hdu2475 Box
lctsplaylcthdu2475 题意就是有一些盒子相互嵌套 两个操作:move x y: 把x插入到y下面(y等于0就放入最外面)(还要注意非法情况…例如y在x里) query x:查询x所在盒子最大的盒子就说说lct的做法吧…感觉网上都是splay..然而我还没有仔细看【捂脸】 就把嵌套在一起的盒子建成一棵树...原创 2018-03-03 17:50:12 · 406 阅读 · 0 评论 -
bzoj2843 极地旅行社
bzoj2843 三个操作:1、连接x,y 2、把x的值改为y 3、查询x到y这条路径上的所以数的和没有cut的lct…ps:真的想打自己(再见 各种笔误#include <cstdio>#include <algorithm>using namespace std;#defin...原创 2018-03-02 22:52:50 · 171 阅读 · 0 评论 -
bzoj1969/洛谷P2542 [Ahoi2005]LANE 航线规划
题意求两点之间的路径有多少条必须边,支持删边操作题解看到删边而且不加边,显然想到倒着做 而必须边,也就是说割边 环也就是不能出现的 问题是求有多少条必须边,那么我们可以用数据结构维护,是环的数值给0,不是的数值给1,那么查询就是查询一段路径的权值和 因为会有加边操作,那么我们可以维护一个 LCTLCTLCT 把边拆成点 加边的时候若已联通说明成环,那么就把这一段赋值成0 ...原创 2018-07-26 20:11:50 · 232 阅读 · 0 评论