金華集訓 筆記 Day9 字尾陣列

2021-09-25 21:08:55 字數 918 閱讀 9688

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...