#P14775. [ICPC 2024 Seoul R] String Rank
[ICPC 2024 Seoul R] String Rank
Description
设 和 是由英文小写字母组成的字符串。如果存在一个严格递增的整数序列 ,其中 ,,且对于所有 有 ,则称字符串 是字符串 的一个子序列。这里 表示字符串 的第 个字符。令 表示后缀 。如果 ,则 为空字符串,记为 。
给定一个非空字符串 和一个正整数 ,我们定义 的 集合 为集合 ,它包含 中所有长度为 的子序列。这意味着,根据定义,对于任何字符串 ,空字符串 都属于 。
例如,当 时,有 $Q_3(\text{aaba}) = \{\lambda, \text{a}, \text{b}, \text{ba}, \text{ab}, \text{aa}, \text{aba}, \text{aab}, \text{aaa}\}$。
对于一个字符串 ,我们定义 的 秩 为最小整数 ,使得 的所有后缀的 集合互不相同。换句话说, 的秩是 $\min\{t \geq 1 \mid Q_t(w[i:]) \neq Q_t(w[j:]), \forall 1 \leq i < j \leq n\}$。
例如,当 时,2 集合 和 是相等的。另一方面,对于 ,我们有
$$\begin{aligned} Q_3(\lambda) &= \{\lambda\}, \\ Q_3(\text{a}) &= \{\lambda, \text{a}\}, \\ Q_3(\text{ba}) &= \{\lambda, \text{a}, \text{b}, \text{ba}\}, \\ Q_3(\text{aba}) &= \{\lambda, \text{a}, \text{b}, \text{ba}, \text{ab}, \text{aa}, \text{aba}\}, \\ Q_3(\text{aaba}) &= \{\lambda, \text{a}, \text{b}, \text{ba}, \text{ab}, \text{aa}, \text{aba}, \text{aab}, \text{aaa}\}. \end{aligned}$$因此,字符串 的秩为 。
给定一个字符串 ,请编写一个程序输出其秩。
Input Format
你的程序需要从标准输入读取数据。输入包含一个非空字符串 ,该字符串仅由英文小写字母组成。字符串的长度不超过 。
Output Format
你的程序需要向标准输出写入结果。输出恰好一行。该行应包含一个正整数,表示输入字符串 的秩 。
aabbb
3
abacb
2
azadzzadaz
4
a
1
京公网安备 11011102002149号