關於字尾陣列的資料,可以看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...