摘要:
传送门 这道题一开始看……能想出来用splay和并查集维护,不过,怎么把两棵splay合并呢……?暴力拆开一个一个合并? 后来发现真的是这样……不过其实是启发式合并,也就是每次我们合并两棵splay的时候,总是把小的那棵合并到大的那棵上面。这样的话就能保证每个点最多之被合并logn次(别问我为啥,我 阅读全文
摘要:
传送门 这道题还是相当的有意思的。 一开始我有个非常沙雕的想法。既然他要求在愿序列后面插值,这么优秀的操作,当然是要用vector实现啦!然后每次往里插值都会影响到其前后一位,直接这么更新就完事啦!下面那一项用平衡树维护每次找一下前驱后继,更新差值的最小值就好啦! 然后愉快的交上去爆零了…… 回来一 阅读全文
摘要:
传送门 这道题比上一道稍微复杂那么一些……不过大体上还是很容易的! 没有必要建立两棵splay,一棵就够了。我们可以记录一下当前在收养场的情况,如果cnt>0说明宠物多,否则人多,然后挨个判断即可。 如果宠物多还来宠物就直接插入,人也同理。 反之,如果宠物多了之后来人了,那就在这堆宠物中找其对应值的 阅读全文
摘要:
传送门 学了splay,我们来做一做splay的裸题吧! 这道题还是十分的简单的。首先第一天的波动值就是当天的营业额,然后其他的,每次就直接在splay里面查找前驱后继,把与当前值差值绝对值小的那个加到答案里面就行。哦,还有就是如果已经存在过这个值那么+0即可(我的找前驱后继好像不支持相同的数……所 阅读全文