Treap
kkkkahlua
这个作者很懒,什么都没留下…
展开
-
POJ 2985 The k-th Largest Group 第k大数 Treap / 树状数组 + 并查集
题目链接题意有 nn 只猫,mm 次操作(n,m≤2e5n,m\leq 2e5): 0 i j0\ i\ j:将第 ii 只猫所在组与第 jj 只猫所在组合并; 1 k1\ k:询问第 kk 大的组中有多少只猫。法一:Treap参考资料董的博客 数据结构之Treap clj的treap ——wbysr POJ 2985 Treap平衡树(求第k大的元素) ——潇洒走一回LW注意点原创 2017-09-03 23:13:12 · 253 阅读 · 0 评论 -
POJ 1442 Black Box 升序询问第k小 优先队列 / Treap
题目链接题意按顺序插入 nn 个数,给出 mm 个询问,问插入第 bib_i 个数后序列中的第 ii 小数。法一:优先队列思路因为该题中所问的第 kk 小数是升序询问的,所以可以用两个优先队列搞一搞,第一个降序(维护最小的 kk 个),第二个升序。 注意:每次插入前要使第一个队列尽量满,从而保证第二个队列中的最小值大于第一个中的最大值。Code#include <cstdio>#include原创 2017-09-03 23:23:29 · 320 阅读 · 0 评论 -
BZOJ 2733 [HNOI2012]永无乡 Treap + 并查集
题目链接题意给定一个图,每个点上有权值。两种操作,连结两个点;问与某个点连通的所有点中权值为第 kk 小的点的编号。思路HDU 3726 Graph and Queries 离线处理 treap + 并查集 的简易版,直接正着做,也没有修改操作Code#include <bits/stdc++.h>#define maxn 100010int fa[maxn], sz[maxn], val[ma原创 2017-09-04 17:07:02 · 222 阅读 · 0 评论 -
HDU 3726 Graph and Queries 离线处理 treap + 并查集
题目链接题意给定一个图,每个点上有权值。三种操作: 1. 删去某条边; 2. 修改某个点的权值; 3. 询问与某个点连通的所有点中权值第 kk 大的值; 最后输出所有询问的平均值。思路因为是离线操作,所以考虑 倒着处理,先删去所有要删的边,倒着处理的时候再加回去,用并查集维护。 每一个集合都是一个 TreapTreap,合并的时候把 sizesize 小的树里面的点一个个拆出来往 size原创 2017-09-04 16:29:28 · 321 阅读 · 0 评论 -
HDU 5096 ACM Rank Treap综合
题目链接2017.9.5 1:40 用很大很大的数据量对拍了好久好久终于找出了错误 智障到哭泣 eraseerase 时 bool dir = t->ch[1]->key < t->ch[0]->key; 写成了 bool dir = t->ch[1]->val < t->ch[0]->val; 一直RE完全不知道哪里出了问题,只好一点一点跟别人的代码对,很多无关紧要的地方都改成了别人原创 2017-09-05 01:45:56 · 296 阅读 · 0 评论 -
HDU 4585 Shaolin 找最接近的数 Treap / set
题目链接题意若干组插入与询问,每次询问与当前要插入的数最接近的数。思路向左走向右走的时候记录一下即可。(是最近写的 TreapTreap 里面最简单的了(躺倒写博客的时候想了一下,为啥不用 setset 呢!因为是搜 HDU 上 Treap 相关的题目搜到的这题...。 用 set 几行就搞定了吗= =而且写 TreapTreap 就相当于自己写了个 setset 啊…。 (写 setset 一原创 2017-09-05 17:41:14 · 225 阅读 · 0 评论