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的出现位置。