定义串 \(S\) 为 LW 串,当且仅当 \(S\) 满足 \(S\) 的所有严格前缀都小于 \(S\)。
LW 串有以下很好的性质:
-
对于 LW 串 \(S\) 的任意一个严格非空前缀 \(T\),若 \(T\) 为 LW 串,那么 \(S\) 除去 \(T\) 后的剩下部分也是 LW 串。
-
定义串 \(S\) 的 LW 划分为:将串 \(S\) 划分为两个 LW 串 \(S=AB\),满足 \(S\) 包含一个同样为 \(B\) 的 LW 串前缀且 \(|B|\) 最大。
根据 LW 划分我们可以定义 LW Tree,其中树上的每个节点代表着一个 LW 串 \(S\),其左儿子和右儿子分别为将 \(S\) LW 划分后得到的两个串。
-
……