随笔分类 -  数据结构-Splay

摘要:写小作业的时候重新复习了一下splay 只支持插入,删除,查k大,查节点数。没有迭代器。 T类型需要重载==和 class Splay { private: struct node { T v; node ch[2], fa; int size; node(const T &a) : size(1) 阅读全文
posted @ 2019-03-24 17:09 abclzr 阅读(223) 评论(0) 推荐(0)
摘要:"http://www.lydsy.com/JudgeOnline/problem.php?id=2646" 夏令营alpq654321讲课时说这道题很简单但并没有几个人提交,最近想复习一下线段树,脑袋一热就开始写这道题。。。 询问$[i,j]$内的抛物线在$[l,r]$上的最大值,最大值只会出现在 阅读全文
posted @ 2017-03-26 10:44 abclzr 阅读(674) 评论(2) 推荐(0)
摘要:http://codevs.cn/problem/1199/ 主要思想是倍增,对于第一个回答从后往前扫,依次插入平衡树中。 我写的splay,比较繁琐。 _(:з」∠)_ 阅读全文
posted @ 2016-09-10 15:03 abclzr 阅读(295) 评论(0) 推荐(0)
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=1178 这道题想了好久没想明白,倍增数组通过看题解很快就明白了,但是一小段区间内应有的最多线段数一直不知道怎么记录。 后来聪哥提醒我才明白,直接getans(l,r)不就完了吗_(:з」∠)_根本不用记 阅读全文
posted @ 2016-08-19 17:03 abclzr 阅读(428) 评论(0) 推荐(0)
摘要:看了《Hash在信息学竞赛中的一类应用》中的例题3,这道题很类似啊,只不过没有删点和区间翻转。 用Splay维护字符串哈希,加点改点什么的就不用说了,查询时二分答案,这样时间复杂度是$O(mlog^2 n)$的 论文的例题3中删点很简单,和插点一样,不用说了,区间翻转只要打一个翻转标记,维护正序ha 阅读全文
posted @ 2016-05-21 21:59 abclzr 阅读(250) 评论(0) 推荐(0)
摘要:$Splay$模板题。 复习一下伸展树的模板。 一定不要忘了push啊!!! 对于减工资后删掉员工的操作,我选择插入一个$min+delta_{减少的工资}$的节点,把它$Splay$到根,砍掉它自己和左子树,保留右子树,这样该走的员工就会从这个世界上消失啦~~~ 阅读全文
posted @ 2016-04-03 11:33 abclzr 阅读(225) 评论(0) 推荐(0)
摘要:启发式合并而已啦,, 调试时发现的错误点:insert后没有splay,把要拆开的树的点插入另一个树时没有把ch[2]和fa设为null,找第k大时没有先减k,,, 都是常犯的错误,比赛时再这么粗心就得滚粗了 PS:最后一组数据有一行是0 0,特判掉这个错误数据就行啦 阅读全文
posted @ 2016-03-16 19:50 abclzr 阅读(245) 评论(0) 推荐(0)
摘要:参照陈竞潇学长的模板写的BZOJ 3188: 还是参照陈竞潇学长的模板写的指针版的BZOJ 3224普通平衡树: 还是参照陈竞潇学长的模板写的BZOJ 3224普通平衡树,数组版,效率和指针版的差不多,但更短,也许是我压代码了吧,,, 指针版的内存池,补上: 差不多了 阅读全文
posted @ 2016-03-06 20:09 abclzr 阅读(230) 评论(0) 推荐(0)
摘要:今天下午先写一个Splay水题来复习一下Splay模板。是不是有点太水了做这种水题我有点良心不安。 可笑的是一开始我竟然WA了一组,看来是我低估水题的数据范围了,我是空节点直接返回inf或-inf,明显是不合理的。比赛时再犯这种低级错误就真的滚粗了。 2016-07-29 当时我确实狂妄自大~~~~ 阅读全文
posted @ 2016-02-18 15:29 abclzr 阅读(178) 评论(0) 推荐(0)
摘要:我写的是线段树套splay,网上很多人写的都是套treap,然而本蒟蒻并不会treap 奉上sth神犇的模板: //bzoj3196 二逼平衡树,支持修改某个点的值,查询区间第k小值,查询区间某个值排名,查询区间某个值值前驱、后继。查询第k小值是log^3(n)的,其他都是log^2(n)的 #in 阅读全文
posted @ 2016-02-17 15:54 abclzr 阅读(270) 评论(0) 推荐(0)
摘要:就是打个翻转标记,下推标记时记得交换左右孩子指针,查询kth和中序遍历输出时也记得要下推标记同时交换指针,二者不可缺!←这是易错点 仿陈竞潇学长模板的代码: 自己写的62行简洁代码: 然后就可以了 阅读全文
posted @ 2016-02-17 15:45 abclzr 阅读(262) 评论(0) 推荐(0)
摘要:删除节点时把节点splay到根; 然后把根左子树的最右边节点splay到根的左孩子上; 然后删除就可以了; 我的教训是删根的时候根的右孩子的父亲指针一定要记得指向根的左孩子!!! my AC code 2016-03-06加上了内存池: 2016-03-06:写了个数组版: 这样就可以了 阅读全文
posted @ 2016-02-17 15:42 abclzr 阅读(224) 评论(0) 推荐(0)
摘要:转啊转终于转出来了,然而我的模板跟陈竞潇学长的模板一模一样,还是太弱啊,第一次用指针。 阅读全文
posted @ 2016-02-03 09:47 abclzr 阅读(331) 评论(0) 推荐(0)