描述
我們定義乙個字串的字尾suffix(i)表示從s[i]到s[length(s)]這段子串。
字尾陣列(suffix array)sa[i]中存放著乙個排列,滿足suffix(sa[i]) < suffix(sa[i+1]) 按照字典序方式比較
定義height[i]表示suffix(sa[i])與suffix(sa[i-1])之間的最長公共字首長度,其中height[1]=0
你的任務就是求出sa和height這兩個陣列。字串長度<=200000
輸入格式
一行,為描述中的字串(僅會出現小寫字母)
輸出格式
共兩行,每行n個數,第一行為sa[i],第二行為height[i],其中每行的數均用空格隔開
測試樣例1
輸入 aabaaaab
輸出 4 5 6 1 7 2 8 3
0 3 2 3 1 2 0 1
分析:
練模板,目前最優美的模板
ps.tyvj的頁面真是超級美,不知道比luogu,bzoj高到**去了
這裡寫**片
#include#include#includeusing namespace std;
const
int n=200010;
int sa[n],a[n],b[n],cc[n];
intlen,hei[n],rak[n];
char s[n];
int cmp(int *y,int a,int b,int k)
void make_sa() }
void make_hei()
}int main()
Tyvj P1860 字尾陣列 字尾陣列模板題
tyvj傳送門 輸入格式 一行,為描述中的字串 僅會出現小寫字母 輸出格式 共兩行,每行n個數,第一行為sa i 第二行為height i 其中每行的數均用空格隔開 測試樣例1 輸入aabaaaab 輸出4 5 6 1 7 2 8 3 0 3 2 3 1 2 0 1 sol 發現了自己程式的乙個bu...
tyvj 1860 字尾陣列
真 模板題 然而還是tle了,tyvj真是個毒瘤,輸出double什麼的就是 0.00000000,這些就tle2333 簡單的說一下本蒟蒻看了一天字尾陣列的收穫 這東西太神了,wcwc,收穫到我的膝蓋233,還是不太理解這個神奇的東西 鑑於本人太虛,只看了一下倍增,照著黃學長扒了乙個板子23333...
tyvj 1860 字尾陣列入門題
描述 description 我們定義乙個字串的字尾suffix i 表示從s i 到s length s 這段子串。字尾陣列 suffix array sa i 中存放著乙個排列,滿足suffix sa i 你的任務就是求出sa和height這兩個陣列。字串長度 200000 輸入格式 input...