析 合 樹 詳 解

2022-02-03 03:14:39 字數 494 閱讀 1063

(沒讀過也沒關係,因為接下來我會先復讀)

首先明確一下連續段的含義,連續段其實就是某乙個子段,它的數值經過sort之後是連續的一段,比如3,4,1,2等等,析合樹就是由部分連續段組成的樹,注意是部分,而不是所有,因為某些特殊資料可以使得連續段達到\(n^2\)個,直接建樹會炸。

於是就要抽出一些更有代表性的連續段,稱這些段為本原連續段,定義乙個本原連續段為在所有的連續段中,不存在與其相交且不包含的連續段,舉個例子,比如,它的本原連續段有,,,,,,,,注意和都不是本原連續段,因為他們兩個有交集,並且互不包含,而和雖然有交集但是包含了這個交集。怎麼理解這個本原連續段呢?如果學過線性基可能會更好理解,但是沒學過也沒關係,考慮從集合的角度來理解,本原連續段的集合是能拼出所有連續段的最小唯一集合,就是說如果要這個集合可以拼出所有的連續段,並且還是元素最少的集合,這倆性質不是正好滿足我們的要求嗎?於是把所有的本源連續段扔到樹上,就拼成了析合樹

由於noip應該考不到這個東西所以就先了解這麼多吧。

虛析構函式詳解

眾所周知,virtual 函式 虛函式 是實現動態排程 執行時多型 概念 當基類指標指向子類物件時候,虛函式能實現執行時多型 多型指 同乙個介面的不同實現方式 虛析構函式 當基類指標指向子類物件的時候,需要把基類的析構函式設定成虛析構,防止記憶體洩露 1 當基類析構函式不設定為虛析構 class b...

C 析構函式詳解

建立物件時系統會自動呼叫建構函式進行初始化工作,同樣,銷毀物件時系統也會自動呼叫乙個函式來進行清理工作,例如釋放分配的記憶體 關閉開啟的檔案等,這個函式就是析構函式。析構函式 destructor 也是一種特殊的成員函式,沒有返回值,不需要程式設計師顯式呼叫 程式設計師也沒法顯式呼叫 而是在銷毀物件...

C 析構函式詳解

析構函式 與建構函式功能相反,析構函式是完成物件的銷毀,區域性物件銷毀工作是由編譯器完成的。而物件在銷毀時會自動呼叫析構函式,完成類的一些資源清理工作。1 在下面這個類中,並沒有顯示定義析構函式,但是編輯器不會生成預設的析構函式,因為在這個類中沒有進行資源的管理,所以不需要析構函式。class da...