sa[i]:第i小的字尾的編號
rank[i]:編號為i的字尾的排名(從小到大)
heigt[i]:第i小的字尾和第i-1小的字尾的最長公共字首
字尾陣列的構造
1、倍增:想要求出每個位置往後2
k2^k
2k個字元,這些字元的排名
由長度為2
k2^k
2k的排名可以得出長度為2k+
12^
2k+1
的字串的排名
基數排序:開權值範圍個桶,把每個數放進桶裡,求一遍字首和,將每個數放進他應該存在的位置即可。
在字尾陣列的構造中可以用基數排序來用o(n
logn
)o(nlogn)
o(nlog
n)的實踐中完成對字尾陣列的構造
第一遍按照第二關鍵字進行排序,以這個序列為與按順序在按第一關鍵字進行排序
這個**似乎有些複雜。。
然後就是求hei
ght了
height了
height
了 求這個東西十分複雜,似乎要用上st表以及一堆結論來求。
這裡不再(neng)詳細介紹
一、可重疊的最長重複子串
二、不可重疊的最長重複子串
三、可重疊至少出現k次的最長重複子串
四、本質不同的子串個數
五、最長回文子串
六、連續重複字串
七、重複次數最多的連續重複子串
八、最長公共子串
九、不小於k個字串中的最長子串
十、每個字串至少出現兩次且不重疊的最長字串 十
一、出現或者反轉出現在在每個字串中的最大子串 十
二、長度不小於k的公共子串的個數
寒假集訓Day9
今天就是打比賽,然後也沒有訓練也沒寫什麼題出來,今天發現了乙個關於pow函式的有意思的事情,就是我int z int pow 169,0.5 算出來z 13 但是我int i 169,然後int z int pow i,0.5 算出來z 12,具體好像和計算機內部什麼資料讀取的形式有關,反正還挺複雜...
刷題筆記day9
pat a1012 the best rank 25分 此題的坑點是,排名涉及並列名次,存在並列第一,並列第三的情況,計算排名時要特別考慮。include include include struct stus 2005 int cmpc const void a,const void b int ...
python學習筆記day9 函式
函式 定義之後可以任何需要他的地方呼叫這個函式 如果函式沒有定義返回值,使用者去取函式的返回值的話,預設返回none 1.返回值的三種情況 1.1 沒有返回值 1.1.1 沒寫return def func print s s 今天天氣好 func 1.1.2 只寫return,後面沒有數值,ret...