原文: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