题目简述:给定字符串$s[1 \dots n](n \leq 2 \times 10^5)$,以及$Q \leq 2 \times 10^5$个询问,每个询问有两个参数$1 \leq l \leq r \leq n$,求
$$ \sum_{i=l}^r \operatorname{lcp}(s[l \dots r], s[i \dots r]), $$
其中$\operatorname{lcp}(s, t)$表示字符串$s$和$t$的最长公共前缀(Longest Common Prefix)的长度。
解:
模型转化
$$ \sum_{i=l}^r \operatorname{lcp}(s[l \dots r], s[i \dots r]) = \sum_{i=l}^r \min\{\operatorname{lcp}(s[l \dots n], s[i \dots n]), r-l+1\} $$
后缀自动机(Suffix Automaton)与后缀树(Suffix Tree)
后缀自动机学习资料:
1. CSDN
2. SAISUMIT
3. CodeForces
后缀树学习资料:
1. cnblogs
为了方便起见,我们在这里再次简要申明后缀自动机和后缀树的定义,以防止混淆各种不同定义的细微差别。
一个(确定)有限状态自动机((Deterministic) Finite-State Automaton)$A = (Q, \Sigma, \delta, q_0, F)$,其中
·$Q$是一个有限的状态集合。
·$\Sigma$是一个有限的字符集。
·$\delta: Q \times \Sigma \to Q$是转移函数。若$\delta(p,a)=q$,则可看作是$p$至$q$有一条权值为$a$的边。
·$q_0 \in Q$是初始状态。
·$F \subseteq Q$是接受状态的集合。
一个非空字符串$s$的后缀自动机$\text{SA}(s)$是一个有限状态自动机$A = (Q, \Sigma, \delta, q_0, F)$,其中
·$Q$和$\delta$构成了一个有向无环图(Directed Acyclic Graph)。
·$F = \{ f_1, f_2, \dots, f_{|s|} \}$,其中$f_{k}$对应后缀$s[k\dots |s|]$。若对$q \in Q$,定义$ \text{str}(q) = \{ t \in \Sigma^*: \delta(q_0, t) = q \} $,则$\text{str}(f_k) = \{ s[k \dots |s|] \}$。
原文地址:https://www.cnblogs.com/TinyWong/p/10363110.html