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 评论