字尾陣列 倍增演算法模板

2022-05-05 05:33:10 字數 523 閱讀 5113

關於字尾陣列的資料,可以看noi2009國家集訓隊** 羅穗騫 的《字尾陣列——處理字串的有力工具》。

/*

suffix array

倍增演算法 o(n*lgn)

build_sa( ,n+1, ) 注意n+1

getheight( , n)

n = 8 ;

num = . 注意num陣列最後一位值為0,其它位須大於0!

rank = . (rank[0~n-1]為有效值)

sa = . (sa[1~n]為有效值)

height = . (height[2~n]為有效值)

*/int

sa[n],t1[n],t2[n],c[n],rank[n],height[n];

intn,m;

void build_sa(int s,int n,intm)}

void getheight(int s,int

n)}

字尾陣列倍增演算法模板詳解

2009國家集訓隊 字尾陣列 處理字串的有力工具 羅穗騫 bool cmp int r,int a,int b,int l void init int r,int sa,int n,int m for i 0 i n i rk sa i i int k 0 for i 0 i n 1 h rk i ...

利用倍增演算法的字尾陣列

仍然不是很懂,貼篇文章放在這兒希望有朝一日能頓悟吧。老天,乙個字尾陣列不知道看了多少天,最後終於還是看懂了啊!最關鍵的就是一會兒下標表示排名,一會用數值表示排名繞死人了。我不知道手跑了多少次才明白過來。其實我也建議初學者手跑幾遍,但是一定要注意陣列的意義,否則就是無用功。s 輸入的字串,預處理的時候...

字尾陣列倍增法

字尾陣列 字尾陣列是處理字串的有力工具。字尾陣列是字尾樹的乙個非常精巧的替代品,它比字尾樹容易程式設計實現,能夠實現字尾樹的很多功能而時間複雜度也並不遜色,而且它比字尾樹所占用的記憶體空間小很多。可以說,在資訊學競賽中字尾陣列比字尾樹要更為實用。1.1 基本定義 子串 字串s的子串r i.j i j...