随笔分类 -  数据结构 -- Splay

该文被密码保护。
posted @ 2019-03-03 10:24 guapisolo 阅读(19) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2019-02-18 22:59 guapisolo 阅读(17) 评论(0) 推荐(0)
摘要:题目大意: 让你维护一个序列,支持: 1.合并两个相邻的数为一个新的数 2.在某个位置插入一个数 3.查询一个区间的任意子区间极差的最大值 4.查询一个区间的任意子区间极差的最小值 前两个操作可以用$splay$轻松实现 第三个操作,求区间的子区间极差最大值,额外维护子树内元素最大值最小值即可 第四 阅读全文
posted @ 2018-12-22 11:06 guapisolo 阅读(292) 评论(0) 推荐(0)
摘要:题目大意: 让你维护一个括号序列,支持 1.区间修改为同一种括号 2.区间内所有括号都反转 3.翻转整个区间,括号的方向不变 4.查询把某段区间变为合法的括号序列,至少需要修改多少次括号 给跪了,足足$de$了$3h$ 感觉这道题的思维难度比维修数列高多了 前三个操作都非常好搞,都是区间打标记 注意 阅读全文
posted @ 2018-12-21 21:02 guapisolo 阅读(169) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2018-10-02 09:44 guapisolo 阅读(11) 评论(0) 推荐(0)
摘要:题目大意:略 调了好久终于过了! 我犯了一个错误,虽然我记得在翻转pushdown的时候交换lx和rx 但我应该翻转的是左儿子和右儿子的lx和rx!而不是当前节点的lx和rx 因为pushup的时候是根据左右儿子的lx和rx更新的! 还有就是在find的时候下传标记,在转到根的时候pushup 很丧 阅读全文
posted @ 2018-09-24 22:35 guapisolo 阅读(155) 评论(0) 推荐(0)
摘要:题目大意:给你一棵树,支持一下三种操作 1.获取某节点到根节点的路径上所有节点的权值和 2.更换某棵子树的父亲 3.某子树内所有节点的权值都增加一个值w 当时想到了splay维护dfs序,查完题解发现思路是对的,然后我就写了足足6个小时才A st[x]代表入栈时间,ed[x]代表出栈时间 对于第一个 阅读全文
posted @ 2018-09-24 22:30 guapisolo 阅读(183) 评论(0) 推荐(0)
摘要:题目大意:维护一个字符串,支持插入字符和替换字符的操作,以及查询该字符串两个后缀的最长公共前缀长度 乍一看以为是后缀数组,然而并没有可持久化后缀数组(雾) 看题解才知道这是一道splay题,首先要对splay维护区间信息有一定了解 splay维护,插入字符,替换字符 而它的字树内所有儿子的中序遍历的 阅读全文
posted @ 2018-09-24 22:28 guapisolo 阅读(181) 评论(0) 推荐(0)
摘要:题目大意:略 splay维护区间翻转裸题,为了减少不必要的麻烦,多插入两个点,分别是0和n+1 每次找区间的第K个值,就在splay上二分即可 顺便学了一下splay的完美建树,而且splay有一些小函数可以宏定义或者用inline,跑得飞快 最后跑一遍中序遍历即可 阅读全文
posted @ 2018-09-24 22:23 guapisolo 阅读(299) 评论(0) 推荐(0)