學習筆記 字尾系列總結

2022-02-05 15:12:43 字數 510 閱讀 3457

字尾插到trie樹里。 把許多節點壓到一起。節點數量是o(n)的 節點可以記錄原串的起始終止位置。 可以查詢子串。

性質: lca深度為lcp長度 某個點的子樹葉子個數為點所代表的子串的出現次數。 按字典序dfs就是字尾排序結果。

求法:倍增,基於基數排序 對於sa lcp(i,j)=min(hei[i]) 可以列舉乙個k,去掉hei核心: 1.right集合 2.parent樹的聯絡 3

學習思考: 字尾樹 反串上建sam的parent樹就是字尾樹。 trie樹建字尾自動機

**求兩個串本質不同的公共子串個數

#號連線,然後跑字尾陣列

sa序列,記錄所屬的字串s1,或者s2

排列成形如:

s1s2

s2s1

s2s1

新出現的公共子串一定是s1,s2之間的height(例如s1,s2後s2,s1)

然後考慮再次出現的時候去掉之前出現過的。

發現就是之前上一次s1,s2的lcp位置取min過來的長度,減去即可。

總結 字尾平衡樹學習筆記

字尾平衡樹,就是動態的維護字尾陣列,可以 o log n 在末尾插入字元,o log n 查詢 rank,sa 但是由於是維護的字尾資訊,所以插入只能在末尾插入字元 然後轉化成在開頭加乙個字元 相當於新增乙個字尾。方法一 我們需要一種能比較兩個字尾大小的方法,最簡單就是二分 hash,o log n...

字尾陣列學習筆記

要用好字尾陣列要先理解裡面幾個陣列的概念 sa i 表示字典序第i大的字尾下標 字典序排名依次是1 len stri ng ra nk i 表示下標為i的字尾字典序排名 he ight i 表示sa i 和sa i 1 最長公共字首的長度.乙個性質 lc p su ffix i suff ix j ...

字尾陣列 學習筆記

字尾陣列是處理字串的強有力的工具 在字串處理當中,字尾樹和字尾陣列都是非常有力的工具。其實字尾陣列是字尾樹的乙個非常精巧的替代品,它比字尾樹容易程式設計實現,能夠實現字尾樹的很多功能而時間複雜度也不太遜色,並且,它比字尾樹所占用的空間小很多。可以說,在資訊學競賽中字尾陣列比字尾樹要更為實用。我們定義...