码迷,mamicode.com
首页 > 其他好文 > 详细

CodeForces 1098F. Ж-function

时间:2019-02-11 21:23:23      阅读:443      评论:0      收藏:0      [点我收藏+]

标签:树的定义   try   undo   https   init   rap   title   nis   get   

题目简述:给定字符串$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)的长度。

解:

code

模型转化

$$ \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|] \}$。

CodeForces 1098F. Ж-function

标签:树的定义   try   undo   https   init   rap   title   nis   get   

原文地址:https://www.cnblogs.com/TinyWong/p/10363110.html

(1)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!