
splay
accepoc
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
hdu3487 Play with Chain splay
题意:给你一个长度为n的1~n序列,要求实现以下两个操作: CUT i j c:将ai,ai+1,...aja_i, a_{i + 1},...a_j切下,接到新数列的第c个数之前。 FLIP i j:将ai,ai+1,...aja_i, a_{i + 1},...a_j这段序列翻转。思路:用splay维护这段序列。 假设要对区间[l, r]进行操作,则将l-1旋转到根,r+1旋转到根的右子树原创 2015-03-15 10:22:58 · 445 阅读 · 0 评论 -
bzoj1500 [NOI2005]维修数列 splay
思路:INSERT:将pos+1旋转到根,pos+2旋转到根的右子树,然后把要插入的序列建成一颗树,接到根的右子树的左子树即可。 DELETE:将要删除的区间旋转到根的右子树的左子树,直接删去即可。 MAKE-SAME:将要修改的区间旋转到根的右子树的左子树,打上标记。 REVERSE:翻转操作类似修改操作,给区间打上标记。 GET-SUM:splay维护一个区间和,把所求区间旋转到根的右子原创 2015-03-15 10:58:08 · 440 阅读 · 0 评论 -
poj3580 SuperMemo (splay)
思路:其他的操作很简单, 要说的只有关于REVOLVE操作: 比如将区间[l, mid]接到区间[mid + 1, r]之后,可以先翻转区间[l, mid],再翻转区间[mid + 1, r],再翻转区间[l, r]。代码:#include <cstdio> #include <cstring> #include <algorithm> #include <iostream>#define MA原创 2015-03-20 21:36:16 · 413 阅读 · 0 评论