O(1) 的小乐
豆瓣账号:http://www.douban.com/people/sosisarah/
摘要: 插入操作,删除操作和置换操作都是单点的,所以不需要lazy标记。这个很简单,都是两次RotateTo,一次Splay操作就搞定。 求最大连续字段和的操作和线段树的题目类似,只需要保存最左边的连续最大字段和,最右边的连续最大字段和,整个子树的连续最大字段和就OK,整个子树的和就OK。 注意PushUp函数的写法就OK//Problem Specific Function void PushUp... 阅读全文
posted @ 2014-04-28 20:18 O(1)的小乐 阅读(796) 评论(0) 推荐(0) 编辑
摘要: 给定两种操作,一种是把一个数列的某一段切下来插到剩余数列的某一个位置上。 一种是翻转操作,把数列的某一段进行翻转。 都是Splay的基本操作。标准的Rotateto调整出 [a,b]区间。然后对[a,b]区间修改parent标记和child标记。然后记住PushUp把修改标记推到树根上。简单一点就直接对某个节点spaly(x,0)就OK! 1: #include 2: #incl... 阅读全文
posted @ 2014-04-28 15:13 O(1)的小乐 阅读(266) 评论(0) 推荐(0) 编辑