随笔分类 -  字符串——后缀自动机SAM

摘要:题目链接在这里 "洛谷" / "LOJ" 题目大意 有一个串$S$,每次询问给你一个串$T$,两个数$L$和$R$,问你$T$有多少个本质不同的子串不是$S[L,R]$的子串 SOLUTION 如果你做过 "生成魔咒" 和 "CF1037H" ,就会做这道题了 有两个坑点: 1.线段树合并时必须每次 阅读全文
posted @ 2019-06-17 07:49 dummyummy 阅读(281) 评论(0) 推荐(0)
摘要:又是一道$SAM$维护$endpos$集合的题,我直接把 "CF700E" 的板子粘过来了QwQ 思路 如果我们有$[l,r]$对应的$SAM$,只需要在上面贪心就可以了。因为要求的是字典序比$T$大且最小的子串,我们从前到后让尽可能多的位相等,如果再也无法相等了就从后往前找一位变大。 但是每次询问 阅读全文
posted @ 2019-05-28 15:22 dummyummy 阅读(287) 评论(0) 推荐(0)
摘要:"RemoteJudge" 又是一道用线段树合并来维护$endpos$的题,还有一道见我的博客 "CF666E" 思路 先把$SAM$建出来 如果两个相邻的串$s_i$和$s_{i+1}$要满足$s_i$在$s_{i+1}$中至少出现了两次,那么$s_i$显然是$s_{i+1}$对应的结点在$par 阅读全文
posted @ 2019-05-28 09:29 dummyummy 阅读(429) 评论(0) 推荐(0)
摘要:"RemoteJudge" 题目大意 给你一个串$S$以及一个字符串数组$T[1...m]$,$q$次询问,每次问$S$的子串$S[p_l...p_r]$在$T[l...r]$中的哪个串里的出现次数最多,并输出出现次数。 如有多解输出最靠前的那一个。 思路 第一次见到在$parent tree$上线 阅读全文
posted @ 2019-05-27 20:46 dummyummy 阅读(392) 评论(0) 推荐(0)
摘要:"原题链接" ,不是权限题 题目大意 有$n$个模板串,让你构造一个尽量长的串,使得这个串中任意一个长度为$k$的子串都是至少一个模板串的子串 题解 可以先看一下这道题 "[POI2000]病毒" 虽然是个$AC$自动机,不过思路很像 对于这道题,我们只需要把广义$SAM$建出来,然后在那些只经过$ 阅读全文
posted @ 2019-04-28 14:34 dummyummy 阅读(269) 评论(0) 推荐(0)
摘要:又学到一个$SAM$的新套路QvQ 思路 考虑用其中的一个串建个$SAM$,然后用其他的串在上面匹配,匹配时更新答案 首先有一个全局变量$len$,表示当前已匹配的长度。假设目前在点$u$,转移方式如下(根节点为$1$): 如果没有对应的转移边,就走后缀连接,$u=suflink(u)$,并令$le 阅读全文
posted @ 2019-04-21 20:21 dummyummy 阅读(933) 评论(0) 推荐(0)