Uoj 35 字尾排序 字尾陣列

2021-07-29 05:37:26 字數 1156 閱讀 4938

統計

描述 提交

自定義測試

這是一道模板題。

讀入乙個長度為 nn 的由小寫英文本母組成的字串,請把這個字串的所有非空字尾按字典序從小到大排序,然後按順序輸出字尾的第乙個字元在原串中的位置。位置編號為 11 到 nn。

除此之外為了進一步證明你確實有給字尾排序的超能力,請另外輸出 n−1n−1 個整數分別表示排序後相鄰字尾的最長公共字首的長度。

輸入格式

一行乙個長度為 nn 的僅包含小寫英文本母的字串。

輸出格式

第一行 nn 個整數,第 ii 個整數表示排名為 ii 的字尾的第乙個字元在原串中的位置。

第二行 n−1n−1 個整數,第 ii 個整數表示排名為 ii 和排名為 i+1i+1 的字尾的最長公共字首的長度。

樣例一

input

ababa

output

5 3 1 4 2

1 3 0 2

explanation

排序後結果為:

a aba

ababa

ba baba

限制與約定

1≤n≤1051≤n≤105

時間限制:1s1s

空間限制:256mb256mb

/*

求height裸題.

陣列從0開始有乙個點過不去

然後改了從1開始,改了好久。。

*/#include

#include

#include

#define maxn 100001

using

namespace

std;

int n,m=130,s[maxn],sa[maxn],ht[maxn],rank[maxn],t1[maxn],t2[maxn],c[maxn];

char ch[maxn];

bool cmp(int *y,int a,int b,int k)

void slovesa()

if(p>n) break;

}}void sloveheight()

ht[1]=0;

}int main()

UOJ 35 字尾排序

這是一道模板題。讀入乙個長度為 n 的由小寫英文本母組成的字串,請把這個字串的所有非空字尾按字典序從小到大排序,然後按順序輸出字尾的第乙個字元在原串中的位置。位置編號為 1 到 n。除此之外為了進一步證明你確實有給字尾排序的超能力,請另外輸出 n 1 個整數分別表示排序後相鄰字尾的最長公共字首的長度...

UOJ35 字尾陣列(模板)

這是一道模板題。讀入乙個長度為 n n n 的由小寫英文本母組成的字串,請把這個字串的所有非空字尾按字典序從小到大排序,然後按順序輸出字尾的第乙個字元在原串中的位置。位置編號為 1 1 1 到 n n n。除此之外為了進一步證明你確實有給字尾排序的超能力,請另外輸出 n 1 n 1 n 1 個整數分...

Codevs 1500 字尾排序 字尾陣列

1500 字尾排序 時間限制 1 s 空間限制 128000 kb 題目等級 大師 master 題目描述 description 天凱是mit的新生。prof.handsomeg給了他乙個長度為n的由小寫字母構成的字串,要求他把該字串的n個字尾 suffix 從小到大排序。何謂字尾?假設字串是s ...