首页 > TAG信息列表 > CF666E

CF666E Forensic Examination(后缀自动机,可持久化线段树合并)

给你一个串\(S\),以及一个字符串数组\(T_{1,2,...m}\),\(q\)次询问,每次问\(S\)的子串\(S[p_l,...p_r]\)在\(T_{l...r}\)中的哪个串的出现次数最多,并输出出现次数。 做法: 对串\(S\)和数组\(T\)建立后缀自动机。 在后缀自动机上找到\(S[l,r]\)这个子串对应的节点u,这是一个经典操作。

【题解】CF666E Forensic Examination

CF666E Forensic Examination \(\text{Solution:}\) 一个基本的思路是考虑如何对 SAM 上的点维护其子树内在每个串的出现次数。 那这个东西是显然的线段树合并,打标记合并即可。 接下来考虑如何迅速找到一个串的 parent 树上的对应点。那对 \(S\) 我们可以考虑把 \(S\) 的前缀点对

【CF666E】Forensic Examination

题目 题目链接:https://codeforces.com/problemset/problem/666/E 给你一个串 \(S\) 以及一个字符串数组 \(T_{1\ldots m}\),\(q\) 次询问,每次问 \(S\) 的子串 \(S[p_l\ldots p_r]\) 在 \(T_{l\ldots r}\) 中的哪个串里的出现次数最多,并输出出现次数。 如有多解输出最靠前的那一个。