字尾陣列小結

2022-03-16 17:57:24 字數 671 閱讀 9670

我為什麼要叫小結呢這明明就是個題解包啊

直接偷迪哥的就好辣

《差異》:大概是個板子,求出$height$陣列後直接單調棧即可

《相似子串》:首先「子串是字尾的字首」,其次「每個字尾貢獻的本質不同子串的數量是$n-i+1-he[i]$」

因為子串過多所以我們考慮運用上文性質來二分查排名

至於相似度$rmq$即可??

《$sandy$的卡片》:三弟的卡片這題我用$hash$水了但還要回去學正解

《字串》:主席樹在$[l,r]$區間查前驅後繼大概想到了,但是會有長度也就是右端點的限制。

再加乙個$log$二分答案驗證即可

《品酒大會》:求出$height$之後兩次單調棧做兩次即可,細節較多

《喵星球上的點名》:網上的題解有十種做法我一種都不會

第一問莫隊,第二問運用差分思想,加入時加上剩餘詢問,去掉時減去剩餘詢問即可。

挺神的感覺,套路還真多啊。

《外星聯絡》:$sa$之後做乙個類似於字尾和的問題。

《$svt$》:還是乙個單調棧的套路,注意下標即可。

《跳蚤》:要求所有最大字典序最小,所以我們考慮二分。

思考怎麼驗證,二分排名之後得到切點,但如果正著列舉的話很難確定切點位置。

所以我們倒著列舉,所以切點位置就被固定了。

《**的**》:並不是很明白所以我就咕了。

字尾陣列小結

搞了這麼多字尾陣列,寫個總結 其實羅穗賽的 裡已經都總結得很清楚了。我這裡對一些 的具體實現細節和一些要注意的地方做一些說明。字尾陣列很重要的三個陣列就是 rank,sa和height了 其中rank i 表示i這個字尾的排名,sa i 表示排在第i位的字尾的首字母位置,height i 表示排名第...

字尾陣列小結

一道模板題 字尾陣列 sa 是乙個比較強大的處理字串的演算法,是有關字串的比較基礎是嗎?演算法,所以必須掌握 實現主要有倍增和dc 3 而我太弱了只學了倍增 s 就是這個字串,長度為le nran k i 表示i到 len 這個字尾在所有字尾中的排名 sa i 表示排名為 i 的字尾的首字元下標 h...

字尾陣列學習小結

這兩天學習了字尾陣列,感想是,果然字尾陣列比網路流可愛的多,就像字串比圖論可愛的多。有模板真好qvq。總結了一下字尾陣列的幾個要點 一.理解rank sa height三個陣列。分別代表所構成的字尾陣列str i 在程式裡並不表現出來 排名後的名次 排名後第i位是str中的哪乙個 str sa i ...