原文:hdu 1890 伸展树区间翻转

吐槽一下,还是太弱了,这个被认为伸展树水题的题本菜搞了好久。。。 给你n个数 每次将第i个位置到第i大的数所在位置 之间的数进行翻转,输出的是第i大的数所在的位置 伸展树的节点不需要记录任何东西,直接按照各个数在数组中的顺序建树即可 即建好伸展树后中序遍历的结果就是原数组的数 所以伸展树的节点编号的相对大小代表的是这个数在数组中的下标,这点一定要搞清楚 然后建树的时候顺便记录下第i大的数所在的节 ...

2012-06-25 10:35 2 2444 推荐指数:

查看详情

伸展

伸展(Splay Tree)平衡二叉查找的一种,具有二叉查找的所有性质。在性能上又比普通的二叉查找有所改进:普通的二叉查找在最坏情况下的查找操作的时间复杂度为O(n)(当二叉树退化成一条链的时候),而伸展在任何情况下的平摊时间复杂度均为 O(log2n). 特性 ...

Thu Aug 06 06:51:00 CST 2015 1 2592
HDU4578 线段(区间更新 + 多种操作)

  题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4578 , 线段区间更新 + 多种操作,好题。   虽然是比较裸的线段,但是比较麻烦,并且有很多细节需要考虑,最后我7.3s很惊险地过了,求大神告知优化方法。   这道题 ...

Mon Feb 23 20:28:00 CST 2015 1 2367
伸展详解及实现

  我们讨论过,的搜索效率与的深度有关。二叉搜索的深度可能为n,这种情况下,每次搜索的复杂度为n的量级。AVL通过动态平衡的深度,单次搜索的复杂度为log(n)。我们下面看伸展(splay tree),它对于m次连续搜索操作有很好的效率。伸展会在一次搜索后,对进行一些特殊的操作 ...

Thu May 19 02:53:00 CST 2016 0 1902
【总结】伸展

伸展是一枚二叉树,可以维护一个数列,或者可以作为二叉搜索,因为无论怎么旋转,它的中序遍历是不变的。 1、伸展操作。 Splay(x,goal):旋转结点x,使它成为结点goal的儿子。 至于旋转,本质上只有左旋和右旋。 2、插入。 如果作为二叉搜索,则插入与二叉搜索 ...

Tue Aug 21 07:02:00 CST 2012 0 3169
伸展(三)之 Java的实现

概要 前面分别通过C和C++实现了伸展,本章给出伸展的Java版本。基本算法和原理都与前两章一样。1. 伸展的介绍2. 伸展的Java实现(完整源码)3. 伸展的Java测试程序 转载请注明出处:http://www.cnblogs.com/skywang12345/p ...

Wed Apr 02 06:18:00 CST 2014 7 7616
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM