随笔分类 -  二叉查找树

摘要:bzoj4627[BeiJing2016]回转寿司 题意: 求在一个序列中和在区间[l,r]中的连续子序列的个数。序列大小≤100000,序列元素可以为负数。 题解: 题目要求这个:l<=sum[i]-sum[j-1]<=r,移项得sum[i]-l>=sum[j-1]>=sum[i]-r,故题目转化 阅读全文
posted @ 2016-08-18 16:28 YuanZiming 阅读(238) 评论(0) 推荐(0)
摘要:bzoj2733[HNOI2012]永无乡 题意: n个节点,每个节点有个权值,初始时有m次连通两点的操作,接下来有q次操作,每次可以连通两个点或求某个点所在连通块权值第k小的节点编号。n,m≤100000,q≤300000 题解: treap启发式合并,就是暴力将小的树拆了插到大的树里,均摊复杂度 阅读全文
posted @ 2016-08-16 22:48 YuanZiming 阅读(184) 评论(0) 推荐(0)
摘要:bzoj1112[POI2008]砖块Klo 题意: N柱砖,希望有连续K柱的高度是一样的. 你可以选择以下两个动作 1:丢掉某柱砖的一块砖。给某柱加上一块砖,现在希望用最小次数的动作完成任务。N≤100000 题解: 设一个区间长度为k,其中位数为a,比a小的元素个数为b,和为c;比a大的元素个数 阅读全文
posted @ 2016-08-16 22:30 YuanZiming 阅读(165) 评论(0) 推荐(0)
摘要:bzoj1861[Zjoi2006]Book 书架 题意: 维护一个序列,支持移动元素,查询元素是第几个,查询第k个元素编号。 题解: 可以用treap和splay,我写的是splay。移动元素就是先删一个节点在将这个节点插入到对应位置,注意各种分操作(如splay、find)的次序性。反思:本弱又 阅读全文
posted @ 2016-08-14 08:33 YuanZiming 阅读(184) 评论(0) 推荐(0)
摘要:bzoj3223Tyvj 1729 文艺平衡树 题意: 一个数列,支持区间翻转操作。 题解: splay裸题。注意涉及到区间操作的一般用splay不用treap。 代码: 20160418 阅读全文
posted @ 2016-07-24 20:02 YuanZiming 阅读(181) 评论(0) 推荐(0)
摘要:bzoj3196Tyvj1730二逼平衡树 题意: 维护一个数列,操作:查询k在区间内的排名、查询区间内排名为k的值3、修改某一位上的数值、查询k在区间内的前驱(前驱定义为小于x,且最大的数)、查询k在区间内的后继(后继定义为大于x,且最小的数) 题解: 线段树套treap,我写了一个星期QAQ第一 阅读全文
posted @ 2016-07-20 20:36 YuanZiming 阅读(253) 评论(0) 推荐(0)