随笔分类 -  数据结构--平衡树

该文被密码保护。
posted @ 2022-06-28 16:30 __Anchor 阅读(0) 评论(0) 推荐(0)
摘要:题目 P5338 [TJOI2019]甲苯先生的滚榜 分析 平衡树模板题。查询一个数的排名。 代码 #include<bits/stdc++.h> using namespace std; template <typename T> inline void read(T &x){ x=0;char 阅读全文
posted @ 2021-05-17 21:12 __Anchor 阅读(48) 评论(0) 推荐(0)
摘要:题目 P5306 [COCI2019] Transport 分析 点分治+平衡树。 首先,我们很容易想到这里要使用点分治,然后我们可以考虑如何拼接路径。 发现因为这道题这样的话是有方向的,于是可以考虑维护两个数据结构,一个是从这个点出发,一个是在这个点结束。 那么具体怎么维护呢?我们发现对于一条路径 阅读全文
posted @ 2021-05-03 00:13 __Anchor 阅读(83) 评论(0) 推荐(0)
摘要:题目 P4175 [CTSC2008]网络管理 树上单点修改,查询路径第 k 大。 解答 这道题做法很多,有 树剖+线段树+平衡树+二分 的,也有 树剖+可持久化线段树+树状数组 的,也有 可持久化线段树+差分+树状数组 的,还有就是 整体二分+树剖 的。 复杂度都是几个 \(log\) 的做法。 阅读全文
posted @ 2021-04-23 23:58 __Anchor 阅读(47) 评论(0) 推荐(0)
摘要:P1110 [ZJOI2007]报表统计 动态插入,然后询问相邻差的绝对值最小值的全局值域相邻差的绝对值最小值。 直接分别用两个平衡树维护即可。 题解代码: #include<bits/stdc++.h> #include<ext/pb_ds/assoc_container.hpp> #includ 阅读全文
posted @ 2021-04-16 21:13 __Anchor 阅读(124) 评论(0) 推荐(0)
摘要:P4008 [NOI2003] 文本编辑器 动态插入字符,动态删除字符,输出一个区间的字符串。 很明显可以直接用平衡树维护,当然也可以分块。 平衡树可以用 FHQTreap或者Splay ,这里用的是前者。 每次操作都可以看成分裂然后合并即可。 代码: #include <bits/stdc++.h 阅读全文
posted @ 2021-04-16 10:54 __Anchor 阅读(105) 评论(0) 推荐(0)
摘要:P5350&P5586 序列 P5350&P5586 序列 区间覆盖,区间求和,交换两个区间,区间复制后覆盖,区间加,区间翻转。 可以使用 \(FHQ Treap\) 来解决。 区间翻转,区间加,区间覆盖,区间求和常规操作,标记维护一下就行了,然后区间交换就是相当于 split 两个区间出来再合并就 阅读全文
posted @ 2021-04-12 16:12 __Anchor 阅读(174) 评论(0) 推荐(0)