Treap
文章平均质量分 79
PoPoQQQ
这个作者很懒,什么都没留下…
展开
-
BZOJ 3196 二逼平衡树 树套树
题目大意:。。。BZOJ挂了自己看去 好吧既然BZOJ挂了我还是贴上来吧0.0 破服务器 维护一种数据结构,提供下列操作: 1.查询k在区间内的排名 2.查询区间内排名为k的值 3.修改某一位值上的数值 4.查询k在区间内的前驱(前驱定义为小于x,且最大的数) 5.查询k在区间内的后继(后继定义为大于x,且最小的数) 其实一开始觉得这题是划分树主席树之类的 然后去了解了一下发现原创 2014-09-23 16:52:43 · 2317 阅读 · 0 评论 -
BZOJ 1112 POI2008 砖块Klo Treap
题目大意:给定一个长度为n的序列,求一个长度为k的子区间,将这个长度为k的区间变成一样的,代价总和最小,求最小花销 显然选取的是这k个数的中位数时代价总和最小 于是我们从左往右扫一遍 用一个Treap来维护这个长度为k的区间即可 时间复杂度O(nlogn) 这水题居然还贡献了一个WA真是。。。 #include #include #include #include #define原创 2015-03-24 18:47:14 · 1485 阅读 · 0 评论 -
BZOJ 2827 千山鸟飞绝 Treap
题目大意:自己看 首先我们可以写个哈希表来存坐标 当我们改变一个点的坐标时,被加入的集合中的点和这个点之间会产生相互的影响。。。 我们首先考虑集合中的点对这个点的影响 显然ans1是集合中的最大值 ans2是集合的大小 然后就是这个点对集合中的点的影响 首先连小学僧都知道如果一个一个改那么复杂度肯定会炸。。。 那么打个标记不就好了! 当一个点删除的时候把标记下传到节点上 一并带走即原创 2015-03-17 22:06:20 · 2925 阅读 · 0 评论 -
BZOJ 1125 POI2008 Poc Hash+Treap
题目大意:给定n个长度为l的字符串,m次交换两个字符,问每个字符串任意时刻最多与多少个相同 把字符串Hash一下 然后就是千山鸟飞绝了。。。 http://blog.csdn.net/popoqqq/article/details/44353883 BZ挂了交不了题真闹心QAQ #include #include #include #include #include #def原创 2015-03-25 17:35:51 · 1867 阅读 · 0 评论 -
BZOJ 3173 Tjoi2013 最长上升子序列 Treap+树状数组
题目大意:给定一个序列,依次将1~n插入,问每次插入之后序列的LIS长度是多少 由于是从小到大插入,因此插入一个数之后显然是不影响之前的答案的 因此我们不妨先用平衡树搞出插入之后的序列,再求一遍LIS即可 注意最后每个点还要对前面的取一下max 因为插入后LIS可能还是之前的序列 蒟蒻的我到底还是把平衡树写挂了。。。 #include #include #include #incl原创 2015-01-29 13:42:22 · 2301 阅读 · 2 评论 -
BZOJ 3545 ONTAK2010 Peaks Treap启发式合并
题目大意:给定一个无向图,每个点和每条边都有权值,多次询问从点v开始只能经过边权小于等于x的点中权值第k大 此题不强制在线,直接把边和询问都按照边权从小到大排序,初始每个节点是一个Treap的根节点 对于每个询问把小于等于这个询问的权值的边两侧的Treap进行启发式合并 然后求第k大即可 不知道是谁出了个强制在线版……回头研究一下 #include #include #include #i原创 2014-10-31 21:06:28 · 2503 阅读 · 0 评论 -
BZOJ 1588 HNOI2002 营业额统计 裸Treap
题目大意:。。。题目描述不全看这里好了 给定一个序列 对于每个元素我们定义该数的最小波动值为这个数与前面所有数的差中的最小值(第一个数的最小波动值为第一个数本身) 求最小波动值之和 找最近的数只需要找前驱和后继就行了 平衡树的基本操作 不多说了 然后—— 此题多组数据!!尼玛!!看题目描述这也是单组数据啊!!什么**情况?? 而且多组数据尼玛也就算了!!输入数据还不全!!如果读到EOF需原创 2014-10-03 00:33:35 · 2568 阅读 · 0 评论 -
BZOJ 2809 APIO2012 dispatching Treap+启发式合并 / 可并堆
题目大意:给定一棵树,选定一棵子树中的一些点,薪水和不能超过m,求点的数量*子树根节点的领导能力的最大值 考虑对于每个节点,我们维护一种数据结构,在其中贪心寻找薪金小的雇佣。 每个节点暴力重建一定不行,我们考虑可并数据结构,每个节点将子节点的信息直接合并即可 可以用启发式合并的Treap,也可以用可并堆 今天特意去学了这玩应0.0 先写了左偏树 然后又写了下随机堆…… 后者速度上更快一些原创 2014-10-24 12:05:30 · 1598 阅读 · 0 评论 -
BZOJ 2733 HNOI2012 永无乡 Treap+启发式合并
题目大意:给定一个无向图以及n个点的排名,多次连接一条边,多次求某个点所在联通块中排名第k小的点的编号 初始对于每个点建立一棵只有一个节点的Treap,然后每次连接两个点,利用并查集找到两个点的根节点,将size较小的Treap暴力拆解插入大的中,然后将小的并查集合并到大的中 今天下午各种脑残,一个小小的Treap改了不下10遍0.0 快去喝脑白金0.0 #include #include原创 2014-10-23 17:16:05 · 2808 阅读 · 0 评论 -
BZOJ 3435 Wc2014 紫荆花之恋 动态树分治+替罪羊树+Treap
题目大意:给定一棵树,每次添加一个节点并询问当前有多少点对满足dis(i,j) 吾辈有生之年终于把这道题切了。。。QAQ 什么?你想做这题? 1095切了么?没?去把1095切掉再说! 3065切了么?没?去把3065切掉再说! 什么?都切了?那还不会做这题?? …… 算了还是说说做法吧。。。 我们抛开那些乱七八糟的,考虑朴素做法原创 2015-03-20 12:34:27 · 6208 阅读 · 4 评论