這是一道模板題。
讀入乙個長度為 nn 的由大小寫英文本母或數字組成的字串,請把這個字串的所有非空字尾按字典序從小到大排序,然後按順序輸出字尾的第乙個字元在原串中的位置。位置編號為 11 到 nn。
輸入格式:
一行乙個長度為 nn 的僅包含大小寫英文本母或數字的字串。
輸出格式:
一行,共n個整數,表示答案。
輸入樣例#1: 複製
ababa
輸出樣例#1: 複製
5 3 1 4 2
n <= 10^6n<=106
字尾陣列知識點詳解:
1 #include 2 #include3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10
using
namespace
std;
11 typedef long
long
ll;12
#define inf 0x7f7f7f7f
1314
const
int maxn = 1e6 + 5;15
char
s[maxn];
16int
n;17
intsa[maxn];
18int
t1[maxn], t2[maxn], c[maxn];
19int
rnk[maxn], height[maxn];
2021
void build_sa(char s, int n, int
m)2244}
4546
intmain()
4755 printf("\n"
);56
return0;
57 }
洛谷 P3809 模板 字尾排序 字尾陣列
題目描述 讀入乙個長度為 n n 的由大小寫英文本母或數字組成的字串,請把這個字串的所有非空字尾按字典序從小到大排序,然後按順序輸出字尾的第乙個字元在原串中的位置。位置編號為 1 1 到 n n 輸入輸出格式 輸入格式 一行乙個長度為 n n 的僅包含大小寫英文本母或數字的字串。輸出格式 一行,共n...
洛谷P3809 模板 字尾排序
這裡,僅僅介紹一下如何進行字串的字尾排序 stl 中的 sort 想得美 由於 sort 函式在比較字串大小時會將字串的每乙個字 符逐一比較,整體複雜度便是 o n 2logn 我們需要乙個更快的方法來對字尾排序.由於不太好講,我就不講啦qaq.code include include includ...
洛谷P3809 模板 字尾排序(倍增)
題目背景 這是一道模板題。題目描述 讀入乙個長度為 n 的由大小寫英文本母或數字組成的字串,請把這個字串的所有非空字尾按字典序從小到大排序,然後按順序輸出字尾的第乙個字元在原串中的位置。位置編號為 1 到 n 輸入輸出格式 輸入格式 一行乙個長度為 n 的僅包含大小寫英文本母或數字的字串。輸出格式 ...