10 1總結 資料結構

2021-08-08 22:42:24 字數 1657 閱讀 9468

近一周的時間內進行了資料結構的複習,在此對知識方面和一些常用技巧進行總結。

並查集:

按秩合併:按照樹高小的往大的裡面合併,使樹高<=logn。

保留樹的形態,使可以通過查詢lca等操作得到兩個元素第一次連通的時間。亦可以通過棧儲存使其變為可撤銷並查集。

一些優化和技巧:

1.使用類似st表的方式維護,省去多餘的合併。

2. 啟發式合併。

3. 拆點。例:bzoj1370,確保敵人的敵人是朋友。

4. 維護一些區間資訊,給出一些和**化為差)判斷是否有矛盾,以及使點不重複的連續區間相連。例:bzoj1202

待續。線段樹 & 主席樹:

這周學習了李超線段樹。

一些優化和技巧:

1.動態開點,線段樹是可以開很大的範圍的。與操作次數有關

2.主席樹的座標往往是時間為x座標,但也可以以值域為x座標,維護其他東西。例:bzoj2653

3.主席樹可以維護區間的靜態資訊,例如查詢區間內出現次數剛好等於自身的數有幾個/和,可以通過以區間右端點為x座標,儲存類似前/字尾和的東西。

樹狀陣列:

相比線段樹常數較小,常常在cdq分治中應用。一般來說支援單點修改+區間查詢 維護字首和,也可以用差分思想儲存區間資訊,進行區間加等操作。dalao的部落格

然後還有二維樹狀陣列。

平衡樹:

我現在只會寫splay了…

和線段樹相似,可以維護諸多區間資訊,例如hash值,最大最小值。維修數列一題比較全。

例:bzoj1014

左偏樹:

常常和並查集一併使用,這種時候要注意彈出的堆頂的fa依然要指向新堆頂。

鍊錶:

相當常用的類似鏈式前向星的儲存方式,合併也很方便。

理不清可以自己畫圖理解。

例:bzoj1483

set :從此不寫平衡樹系列。

一些優化和技巧及注意事項:

1.先插入+-inf作為邊界。

2.通過tmp= * –find(x) tmp= * ++find(x) 訪問前後驅

3.自定義比較函式。

4.啟發式合併

heap:

自帶的stl,相當方便,預設是大根堆,末尾加 greater< int >( )變為小根堆。

h[t]=x;

push_heap(a,a+(++t));

pop_heap(a,a+(t–));

其他:

觀察是否有單調性,可以考慮維護單調佇列或單調棧。

很多資料結構都可以啟發式合併。

字首和 和 差分 的思想很常用。

關於之後的計畫:

目前感覺棧,佇列一類觸及到的比較少,就夾雜在其中複習。

國慶穿插地複習數論和dp(揹包和各種優化dp)

瀋陽題表上的分模擬較細,應該能全面過一遍。

數論部分先撿知識,忘了的crt,ind,元根等。

復xue習xi 01分數規劃。

看組合數學。

資料結構 總結

不知不覺間,跟隨賀老師的步伐已經乙個學期了。記得大一的時候,那個時候還沒有接觸到計算機專業的知識,那個時候便聽說了賀老師,那個時候對於老師厲害還沒有什麼概念,只是覺得可能是老師比較博學,比較深層次的了解一些計算機的內容,卻從未想過,這種厲害更加深入到了學生的腦海中,甚至可能會對乙個學生,一群學生,越...

資料結構總結

本文為總結了資料結構知識點,以便複習 本文為總結了資料結構知識點,以便複習 1.緒論 2.線性表 資料結構三要素 邏輯結構 儲存結構 物理結構 資料運算。其中邏輯結構包括線性結構 線性表 棧 佇列 和非線性結構 樹 圖 集合 儲存結構主要有 順序儲存 鏈式儲存 索引儲存 雜湊儲存 又稱hash儲存 ...

資料結構總結

資料結構 相互之間存在一種,或者多種特定關係的資料元素的集合 資料 能夠輸入計算機中,由計算機處理的元素 結構 資料之間的關係 例如 點狀,線性,星形,樹形 連續儲存的資料結構,通過起始陣列和偏移量來對其中每乙個元素進行訪問 優勢 隨機訪問性好,占用空間較小 時間複雜度 o 1 線性儲存 每個元素都...