Splay树
文章平均质量分 85
hqwhqwhq
有梦想就不累
展开
-
POJ 3580 SPLAY树
最近补基础数据结构的最后一题,说实话,这题比上一题简单多了。这里面有一个右移T次的操作,其实就是把数列分成[l,r-T],[r-T+1,r]然后把前一段插到后一段后面。这题我写傻逼了,wa了5发,发现我把右移写成了左移。。。 明天回家了,待会买点东西,回来写个Splay树小结!!! 下面附上这道题的AC代码: #include #include #include #include #原创 2015-08-22 18:29:19 · 426 阅读 · 0 评论 -
HDU 1890(Splay树)
这个礼拜准备把Splay树补完,这道题被认为是一道Splay的水题,(然而像我这种入门级学习后还是搞了好久,毕竟算是第一次接触吧)。 感觉Splay树必须要明确的一点:该树的中序遍历就是现在的序列 这里面有一个区间翻转的操作,涉及到区间问题,Splay树的核心就是RotateTo(l-1,0),Rotate(r+1,root),就是把该区间的前一个数转到根节点,后一个数转到根节点的右节点,这是原创 2015-08-18 11:54:09 · 440 阅读 · 0 评论 -
HNOI 2002 营业额统计
最近开始重新学习Splay树写的第一题,基本就是照着别人博客改的一道题,关于Splay树的模板,感觉大牛已经把代码改得很短!!!这道题没什么难度,一个插入操作,一个找前驱,一个找后驱的操作。(话说这题有个数据有个bug的地方,可以看连接的discuss)。因为没有Push_Down,Push_Up的操作,感觉这题应该算是Splay树里面最水的一道了吧。 下面附上代码:(因为是第一题写Splay树原创 2015-08-19 15:56:37 · 444 阅读 · 0 评论 -
NOI2005 维修数列
昨天A掉的这题,然后伸展树还有最后一题没敲。很BT的一题,但是感觉学习伸展树不做这道题不算真正学过吧。 这道题多了一个操作,求子序列和的最大值。这个东西怎么维护?其实和学习线段树的时候很经典的那个Hotel基本一样,维护一个最左端的和的最大值,维护一个最右端和的最大值,维护一个最大值,维护一个区间和。然后区间合并的操作就好写了,不过写的时候细节的地方要特别注意一下,例如,没有左节点的情况。(当然每原创 2015-08-21 20:42:06 · 601 阅读 · 0 评论 -
Splay树小结
http://blog.csdn.net/acm_cxlove/article/details/7815019 附上cxlove大神的博客链接,最近是跟着上面的题目做的。 刚学的时候感觉好难,显示照着大白皮上面敲的模板,然后网上各种看论文,感觉指针写还是太繁琐,还是直接数组写的精炼。感觉Splay树确实强大,可以解决好多序列问题。感觉Splay树的核心是Key_Tree = ch[ch[root原创 2015-08-22 21:37:55 · 352 阅读 · 0 评论