由於快考試了先咕掉
在閱讀本文之前,請保證先讀過OI-WIKI上的文章
(沒讀過也沒關系,因為接下來我會先復讀)
基本定義
首先明確一下連續段的含義,連續段其實就是某一個子段,它的數值經過sort之后是連續的一段,比如3,4,1,2等等,析合樹就是由部分連續段組成的樹,注意是部分,而不是所有,因為某些特殊數據可以使得連續段達到\(n^2\)個,直接建樹會炸。
於是就要抽出一些更有代表性的連續段,稱這些段為本原連續段,定義一個本原連續段為在所有的連續段中,不存在與其相交且不包含的連續段,舉個例子,比如{1,4,2,3,5},它的本原連續段有{1},{4},{2},{3},{5},{2,3},{2,3,4},{1,2,3,4,5},注意{1,4,2,3}和{4,2,3,5}都不是本原連續段,因為他們兩個有交集{4,2,3},並且互不包含,而{2,3,4}和{2,3}雖然有交集{2,3}但是{2,3,4}包含了這個交集。怎么理解這個本原連續段呢?如果學過線性基可能會更好理解,但是沒學過也沒關系,考慮從集合的角度來理解,本原連續段的集合是能拼出所有連續段的最小唯一集合,就是說如果要這個集合可以拼出所有的連續段,並且還是元素最少的集合,這倆性質不是正好滿足我們的要求嗎?於是把所有的本源連續段扔到樹上,就拼成了 析合樹
由於NOIP應該考不到這個東西所以就先了解這么多吧。