欢迎光临散文网 会员登陆 & 注册

CF竞赛题目讲解_CF1037H(后缀自动机 + 线段树)

2022-10-07 16:58 作者:Clayton_Zhou  | 我要投稿

https://codeforces.com/contest/1037/problem/H

题意:

给出一个文本串 S   ,有 Q   次询问,每次询问给出模式串 T,

问在 S  串中 [ l , r ]  区间上是否存在比 T   的字典序大的子串,

如果存在输出其中字典序最小的那个子串,否则输出 − 1 

 

题解:

后缀自动机 + 线段树  

后缀自动机中每个字符串节点出现位置上传到线段树,

一个字符串可能出现多次,因而在线段树上也有多个位置。


与模式串 T匹配时,同时使用后缀自动机 + 线段树,非常经典的技术。

使用后缀自动机可以知道模式串 T是否存在,使用线段树可以知道模式串 T的出现位置。


CF竞赛题目讲解_CF1037H(后缀自动机 + 线段树)的评论 (共 条)

分享到微博请遵守国家法律