![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
----------数据结构-----------
文章平均质量分 82
Excelsior_kereo
这个作者很懒,什么都没留下…
展开
-
poj 3468 A Simple Problem with Integers splay
题意:有两种操作: 1. C l r x: 区间[l,r]的数加x。 2. Q l r : 查询区间[l,r]的和。思路:线段树的裸题,只是为了练习splay。详见代码:/********************************************************* file name: poj3468.cpp author : kereo cre原创 2015-01-28 23:15:14 · 636 阅读 · 0 评论 -
hdu 3487 Play with Chain splay
题意:对于一个序列有两种操作: 1. Cut a b c 把序列第a个到第b个切下来,站在剩余元素中第c个后面。 2. Flip a b 把第a个到第b个区间的元素翻转。思路:splay。都是基本的操作,基本都是利用rotateto进行操作。注意下切的时候再补上去的时候要更新下其父亲的地址,详见代码:/*************************************原创 2015-01-31 20:28:45 · 570 阅读 · 0 评论 -
hdu 3564 Another LIS splay
题意:依次插入i到pos[i],查询插入后当前LIS。思路:splay。因为插入的数是升序的,那么对于i,只要知道pos[i]之前的最大LIS---x,那么以i结尾的最大LIS=x+1。那么只要在splay中,只要维护一个当前区间最大的LIS,插入的时候,把第pos-1位的点旋到根root,把pos位的点旋到根的右结点R(root),新插入的点插在L(R(root))即可,结点的值原创 2015-01-31 14:09:52 · 696 阅读 · 0 评论 -
bzoj 1269 文本编辑器editor splay
题意:中问题。思路:splay的基本操作,注意读入,详见代码:/********************************************************* file name: bzoj1269.cpp author : kereo create time: 2015年02月01日 星期日 16时57分30秒*********************原创 2015-02-01 20:51:50 · 844 阅读 · 0 评论 -
LA 6531 Go up the Ultras 单调栈+RMQ
题意:已经懒得吐槽了。。有N个山峰,(N它高的山峰都会经过一个最低值(山谷),d代表是h减去这些最低值中的最大值的差(如果不存在比它高的山峰那么d就是它本身的高度),问有多少山峰的d>=150000米。思路:利用单调栈维护每个峰左边第一个比它高的峰的位置l,右边第一个比它高的峰的位置r,对于r,我们从前向后维护一个单调减序列,如果当前考虑的点i比栈顶的元素高度高,那么弹出栈顶元素,原创 2015-02-06 22:12:36 · 792 阅读 · 0 评论 -
hdu2475 Box splay || 动态树
题意:一开始给定n个盒子的摆的嵌套关系。有两种操作,1.MOVE x y:把编号x的箱子及其包含的箱子放进编号为y的箱子;2.QUERY x :查询编号x的箱子所在的最靠外的箱子。思路:将全部的树逐个dfs,这样对于每一棵树都可以得到一个括号序列,对于MOVE操作,我们将那个根所在的左右括号的一整段取出,连接到新的结点的左括号右边,这么做我们可以保证得到的一定也是一个括号序原创 2015-02-18 17:30:40 · 722 阅读 · 0 评论