随笔分类 - 数据结构——平衡树
P3103 [USACO14FEB]Airplane Boarding G 题解
摘要:Description Luogu传送门 Solution 偶然发现这道题所以来做做。 刚开始看完题的时候感觉这只能暴力模拟…… 于是不要脸的看了一眼题解之后,我们可以用一些表达式来表示每头奶牛到达它应该到的位置的时间,从而计算出总共时间。 具体来说,第 n 头牛到达其位置所
P5055 【模板】可持久化文艺平衡树 题解
摘要:Description Luogu传送门 Solution 顾名思义,我们要实现的就是可持久化文艺平衡树,也就是带修的文艺平衡树。 前置知识:文艺平衡树,可持久化平衡树 对于每次修改,我们要新建出被修改的那棵子树,所有的修改及查询操作全都是在要求的版本中进行。 修改之后建出新的版本。 我写的时候直接
P4036 [JSOI2008]火星人 题解
摘要:Description Luogu传送门 Solution 考虑使用平衡树维护 hash 值。 一个点的 sum 值表示这个点所在子树的 hash 值,那么如何更新呢? 应该还是比较简单的吧,就是: \[ 左子树_{sum} \times (右子树_{siz} + 1) + 根_{val} \tim
『学习笔记』Splay
摘要:不打算详细写了,强推一波 yyb 神仙的博客 Splay入门解析【保证让你看不懂(滑稽)】 (这篇博客的代码完全是按照 yyb 的博客写的,并有一些补充,包括 pushup 及查询第 k 大的整数等等) 这里列几个注意事项吧: Splay 过程中,如果 x,y 为同一种儿子,那么先
UVA1402 Robotic Sort 题解
摘要:Description Luogu传送门 Solution 题目要求我们找到第 i 的数,其实就维护一下剩下的数中最小值在哪里即可。 我们考虑使用 fhq−treap。 说一下具体实现过程: 找到剩下的点中的最小值(其实就是根)。 输出答案,删去它,合并它的两个儿子。 维护区间翻转标
P4402 [Cerc2007]robotic sort 机械排序 题解
摘要:Description Luogu传送门 Solution 题目要求我们找到第 i 的数,其实就维护一下剩下的数中最小值在哪里即可。 我们考虑使用 fhq−treap。 说一下具体实现过程: 找到剩下的点中的最小值(其实就是根)。 输出答案,删去它,合并它的两个儿子。 维护区间翻转标
CF702F T-Shirts 题解
摘要:Description Luogu传送门 Solution 先对物品按照品质从大到小排序,相同品质的按价格从小到大排序。 依次枚举每一个物品,考虑对于一个物品,其价格为 c,品质为 q: 拥有钱数小于 c 的人买不起,不用管。 拥有钱数大于等于 c 的人买得起,也必须
洛谷 P1533 可怜的狗狗
摘要:Description 洛谷传送门 Solution 这道题似乎能用很多种方法来做,我用的 fhq−treap。 本来我想的是维护两只平衡树,一个用来找区间,另一个来找区间最大值。 想了一会发现想假了。这样做完全不对。 于是去题解区看了一眼题解,发现似乎可以用莫队来做,但是没找到 \(fhq
洛谷 P2042 [NOI2005] 维护数列
摘要:Description P2042 [NOI2005] 维护数列 Solution 一道细节巨多的毒瘤题。 我用的 fhq−treap 通过的此题。 下面我们以此分析一下。 先说一下 fhq−treap 中需要存什么东西。 struct Treap{ int ch[2], siz,
洛谷 P3391 【模板】文艺平衡树
摘要:Description P3391 【模板】文艺平衡树 Solution 方法一(fhq-treap) 文艺平衡树实际上只有一个操作,区间翻转。 那么我们来看看如何实现。 大体上是一致的,但是分裂时要有所改变。 平常我们写的 fhq−treap 是以数值来分裂的,这里我们换个分裂方式。 以子
洛谷 P4146 序列终结者
摘要:Description P4146 序列终结者 Solution fhq-treap 不得不说 fhq−treap 代码是真的短,真的好写。 挺板子的一道题。 **区间加:**打个 add 标记,不停下放即可,相应的 maxs,val,add 都要更新。 **
洛谷 P1486 [NOI2004] 郁闷的出纳员
摘要:Description P1486 [NOI2004] 郁闷的出纳员 Solution 无旋treap (fhq−treap) 如果有不会 fhq−treap 的同学,可以看我的博客 浅谈 fhq-treap(无旋treap) 下面我们来看一看这道题。 发现 新建工资档案 和 查
洛谷 P2596 [ZJOI2006]书架
摘要:Description P2596 [ZJOI2006]书架 Solution 这里介绍无旋treap (fhq−treap) 关于模板有不会的同学可以去看我的博客 浅谈 fhq-treap(无旋treap) 这里只介绍本题思想: 由于题目还是对排名进行的操作,所以我们要按照子树大小进行分裂
洛谷 P3850 [TJOI2007]书架
摘要:Description 传送门 Solution 无旋treap fhq−treap 关于 fhq−treap 不会的同学可以去看我的博客 浅谈 fhq-treap(无旋treap) 一道经典的按区间大小分裂的题。 这道题中,我们要稍微修改 split 函数。 以前我们写过的
洛谷 P2073 送花
摘要:Description 洛谷 P2073 送花 Solution 无旋treap (fhq−treap) 这道题有点小变化。 对于 insert 操作,就按花的价格分裂。判断是否有当前要插入的花的价格,如果有就直接合并回去,如果没有,就把当前花插入进去。 对于删除操作,我们就删除
洛谷 P2343 宝石管理系统
摘要:Description P2343 宝石管理系统 Solution 无旋treap (fhq−treap) 洛谷模板题简化版。 不多说了。 有不会的话看我的博客吧。 浅谈 fhq-treap(无旋treap) 有一个小坑点,题目中求的是第 n 大的数是多少,所以查询时要查 \(tot
洛谷 P1503 鬼子进村
摘要:Description 传送门 Solution 无旋treap (fhq−treap) 可能有些大材小用了,但是我毕竟是在练习,多写一遍总不是坏事。 基本上就是一个 fhq−treap 板子题。 不会的话,看这里 浅谈 fhq-treap(无旋treap) 我们把鬼子要摧毁的房子存
『学习笔记』fhq-treap(无旋treap)
摘要:模板题:洛谷 P6136 【模板】普通平衡树(数据加强版) (emm刚写了这个,就放这个吧) fhq−treap 也叫做 无旋treap,由防火墙范浩强大佬发明。 个人认为是平衡树中码量最少,也最容易理解的一种写法。 主要思想 顾名思义,无旋意味着它没有旋转操作(终于没有恶心人的旋转了)。