BZOJ
aozil_yang
这个作者很懒,什么都没留下…
展开
-
BZOJ 3224: Tyvj 1728 普通平衡树(替罪羊树)
题意: 替罪羊裸题: 1. 插入x数 2. 删除x数(若有多个相同的数,因只删除一个) 3. 查询x数的排名(若有多个相同的数,因输出最小的排名) 4. 查询排名为x的数 5. 求x的前驱(前驱定义为小于x,且最大的数) 6. 求x的后继(后继定义为大于x,且最小的数) 算是整理替罪羊模板了 注意: Rank(x) 求的是大于等于x 的最小排名。 #include #incl原创 2017-05-05 16:13:27 · 683 阅读 · 0 评论 -
BZOJ 1588 [HNOI2002]营业额统计(Splay)
思路: 算是很裸的Splay了。 我们知道 Splay 是一个排序二叉树。 结点 左子树 一定都小于 当前结点。 右子树一定都大于当前结点。 那么我们插入一个值后。 找前驱和后继 取个最小值不就ok了么。 有几个注意的。 当插入值不成功时, 最小值肯定是0 不用算的, 算的话 会出错的, 因为这个值并没有加进去。 另外, 当是第一个数时, 直接加这个数的绝对值即可。原创 2017-07-14 10:33:11 · 324 阅读 · 0 评论 -
BZOJ [HNOI2004]宠物收养所 (Splay)
思路: 开始想的是建立两棵Splay, 来回倒,宠物建立一个, 人建立一个, 然后剩下的问题就是找另一个树的前驱和后继。 但是在超时, 可能哪里写挫了, 也可能是两棵本身就过不了。 于是借鉴了另一个很机智的思路: 想一想就知道, 在任意时刻,不可能既有宠物,又有人。 因此我们建立一个Splay 即可, 开一个变量 标记当前时刻 树里存的是人 还是宠物。 这样就转换成了一棵树上的原创 2017-07-14 20:00:59 · 323 阅读 · 0 评论