字尾陣列學習筆記

2022-02-01 23:54:16 字數 429 閱讀 8165

學了5,6遍,學一次忘一次 所以還是整理一下吧

乙個rk陣列 乙個sa陣列

rk[i]表示第i個字尾的排名

sa[i]表示排名為i的字尾的初始位置的下標

code

#includeusing namespace std;

#define rint register int

const int maxn = 1e6 + 10;

int rk[maxn],tp[maxn],sa[maxn],cnt[maxn],n,m;

char s[maxn];

void rsort()

int main()

for(rint i = 1;i <= n;++i) printf("%d ",sa[i]);

return 0;

}

字尾陣列學習筆記

要用好字尾陣列要先理解裡面幾個陣列的概念 sa i 表示字典序第i大的字尾下標 字典序排名依次是1 len stri ng ra nk i 表示下標為i的字尾字典序排名 he ight i 表示sa i 和sa i 1 最長公共字首的長度.乙個性質 lc p su ffix i suff ix j ...

字尾陣列 學習筆記

字尾陣列是處理字串的強有力的工具 在字串處理當中,字尾樹和字尾陣列都是非常有力的工具。其實字尾陣列是字尾樹的乙個非常精巧的替代品,它比字尾樹容易程式設計實現,能夠實現字尾樹的很多功能而時間複雜度也不太遜色,並且,它比字尾樹所占用的空間小很多。可以說,在資訊學競賽中字尾陣列比字尾樹要更為實用。我們定義...

字尾陣列 學習筆記

剛剛學完回文自動機 來學字尾陣列 一開始思路看得懂 但是 看不懂呀 一堆神仙 洛谷p3809 勿謂我,何強過者,炸哉!我們需要一種新的演算法 字尾陣列 首先,輸入字串 scanf s ch 1 n strlen ch 1 然後,按照題意 suffix sort ch for int i 1 i n ...