![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
splay
guapisolo
已经弃掉CSDN转博客园了https://www.cnblogs.com/guapisolo/
展开
-
splay 文艺平衡树 (数据结构)
题目大意:略 splay维护区间翻转裸题,为了减少不必要的麻烦,多插入两个点,分别是0和n+1 每次找区间的第K个值,就在splay上二分即可 顺便学了一下splay的完美建树,而且splay有一些小函数可以宏定义或者用inline,跑得飞快 最后跑一遍中序遍历即可 #include <cstdio> #include <cstring> #include &l...原创 2018-08-30 20:07:46 · 161 阅读 · 0 评论 -
bzoj 1014 [JSOI2008]火星人prefix (splay+二分答案+字符串hash)
题目大意:维护一个字符串,支持插入字符和替换字符的操作,以及查询该字符串两个后缀的最长公共前缀长度 乍一看以为是后缀数组,然而并没有可持久化后缀数组(雾) 看题解才知道这是一道splay题,首先要对splay维护区间信息有一定了解 splay维护,插入字符,替换字符 而它的字树内所有儿子的中序遍历的hash值也可以通过splay维护 (这个推导式似乎烂大街了) 而后缀就是把i-1拎...原创 2018-09-06 21:01:10 · 152 阅读 · 0 评论 -
bzoj 3786 星系探索 (splay+dfs序)
题目大意:给你一棵树,支持一下三种操作 1.获取某节点到根节点的路径上所有节点的权值和 2.更换某棵子树的父亲 3.某子树内所有节点的权值都增加一个值w 当时想到了splay维护dfs序,查完题解发现思路是对的,然后我就写了足足6个小时才A st[x]代表入栈时间,ed[x]代表出栈时间 对于第一个操作,每个树上节点在splay中都有两个位置,分别对应入栈出栈序,然后把入栈的点权*1,...原创 2018-09-08 00:17:45 · 153 阅读 · 0 评论 -
bzoj 1500 [NOI2005]维修数列 (splay)
题目大意:略 调了好久终于过了! 我犯了一个错误,虽然我记得在翻转pushdown的时候交换lx和rx 但我应该翻转的是左儿子和右儿子的lx和rx!而不是当前节点的lx和rx 因为pushup的时候是根据左右儿子的lx和rx更新的! 还有就是在find的时候下传标记,在转到根的时候pushup 很丧病的题 然后我的代码在洛谷上过了,可bzoj上迷之CE了,害得我的提交记录里多了13%...原创 2018-09-12 17:59:27 · 97 阅读 · 0 评论