随笔分类 -  数据结构——LCT

摘要:考虑先分析一下题目给的性质啊: 道路的修建会满足:每一时刻,都不存在 \((u,v)\) 使得 \((u,v)\) 之间能通过多种方式到达。 妥妥的一棵树啊。 通过每条道路都需要单位时间 这棵树的边权为$1$ 她都想选择一个她能到达的最远的小镇作为终点,并且她在行走过程中是不会走回头路的 就是找一个 阅读全文
posted @ 2021-06-02 20:45 fhq_treap 阅读(97) 评论(2) 推荐(0) 编辑
摘要:这是一道不那么$native$的$LCT$题,当然可用树剖做,不过在学$LCT$,自然拿$LCT$做。 先考虑分析一些性质。 Q:暴力我们要怎么做? A:建出树来,从这个节点,一直往上跑,直到对父亲节点没有贡献。 Q:什么时候对父亲节点有贡献呢。 A:当父亲节点只有1个1时,你从0变成了1,当父亲节 阅读全文
posted @ 2021-05-11 21:12 fhq_treap 阅读(57) 评论(0) 推荐(0) 编辑
摘要:考虑记录如下几个量: v : 每个点的权值 siz : splay中子树大小 s : splay中子树的权值和 lm,la : 两个标记 然后维护操作就行。 [国家集训队]Tree II #include<iostream> #include<cstdio> #define ll long long 阅读全文
posted @ 2021-05-10 20:44 fhq_treap 阅读(52) 评论(0) 推荐(0) 编辑
摘要:$LCT$裸题。 不过区别于弹飞绵羊,这题要维护的树的形态,以及查询原根操作。 请记住,千万不要打错宏定义。 [SDOI2008]洞穴勘测 #include<iostream> #include<cstdio> #define ll long long #define N 300005 ll f[N 阅读全文
posted @ 2021-05-06 20:19 fhq_treap 阅读(43) 评论(0) 推荐(0) 编辑
摘要:考虑这是一个$LCT$模板题。 感觉得多做一些题来熟悉$LCT$的操作。 这个题考虑对每个点向他往后跳的终点,如果会出界就不连边。 然后考虑$LCT$维护,也就是查询该点到原树根的距离。 那就$access$,\(splay\),然后查询$x$的子树大小就行了。 断边的话,因为保证了树结构而且断的边 阅读全文
posted @ 2021-05-05 22:03 fhq_treap 阅读(48) 评论(0) 推荐(0) 编辑
摘要:会找时间写一篇学习笔记的。 $Access$的操作是把$x$和$x$所在原树的顶端点的路径变为一个$splay$ 对于原树边我们有这样的操作,对每个$splay$的顶点维护一个父亲,认父不认子,其对应的是维护的这条链的顶端的父亲。 要求 \(Splay\) 中序遍历获得的节点序列是严格按照节点深度严 阅读全文
posted @ 2021-05-05 21:24 fhq_treap 阅读(142) 评论(0) 推荐(0) 编辑