CodeForces 1098F. Ж-function
Posted tinywong
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CodeForces 1098F. Ж-function相关的知识,希望对你有一定的参考价值。
题目简述:给定字符串$s[1 dots n](n leq 2 imes 10^5)$,以及$Q leq 2 imes 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 imes Sigma o Q$是转移函数。若$delta(p,a)=q$,则可看作是$p$至$q$有一条权值为$a$的边。
·$q_0 in Q$是初始状态。
·$F subseteq Q$是接受状态的集合。
一个非空字符串$s$的后缀自动机$ ext{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[kdots |s|]$。若对$q in Q$,定义$ ext{str}(q) = { t in Sigma^*: delta(q_0, t) = q } $,则$ ext{str}(f_k) = { s[k dots |s|] }$。
以上是关于CodeForces 1098F. Ж-function的主要内容,如果未能解决你的问题,请参考以下文章
Codeforces 1098B. Nice table 构造
CodeForces 1098E. Fedya the Potter