后缀自动机
A1847225889
在一次次翻车中吸取教训……
展开
-
6717. 【2020.06.07省选模拟】T3 敏感词
题目 正解 辣鸡数据结构题。 考虑某个串出现的所有位置的右端点。设相邻位置之差为did_idi(d1=+∞d_1=+\inftyd1=+∞),于是它覆盖的位置为∑min{di,len}\sum min\{d_i,len\}∑min{di,len},也就是∑di≤lendi+len∑[di>len]\sum_{d_i\leq len}d_i+len\sum [d_i>len]∑di≤lendi+len∑[di>len] 于是考虑维护值在某个区间内的did_idi的和、个数。原创 2020-06-12 20:49:23 · 253 阅读 · 0 评论 -
6567. 【GDOI2020模拟】字符串
题目 给你一个字符串,问所有长度为mmm的字符串之中,对于子串iii,和它相似的子串分别是什么。 “相似”的概念:两个字符串至多有一个位置的字符不同。 n≤1e5n\leq 1e5n≤1e5 正解 由于比赛的时候基本上都在刚T1,所以这题没有干过。 各种暴力,大概都是从快速地判断子串相等入手。 但是正解用到了一个新的性质:对于字符串SSS和TTT,若lcp(S,T)+lcs(S,T)≥m−1lc...原创 2020-04-20 22:09:49 · 453 阅读 · 0 评论 -
后缀自动机SAM
先co一个模板上来,以后有时间再填坑。 #define MAXN 100000 struct Node{ int len; Node *c[26]; Node *fail; } d[MAXN*2+10]; Node *null,*last,*S; int cnt; void sam_init(){ null=&d[0]; ++cnt; ...原创 2018-08-19 15:42:07 · 286 阅读 · 0 评论 -
[JZOJ3337] 【NOI2013模拟】wyl8899的TLE
题目 题目大意 给你两个字符串AAA和BBB,可以修改AAA中的一个字符,求修改后最长的AAA的前缀,使它是BBB的子串。 思考历程 看到这道题之后,第一眼想到的就是后缀自动机! BBB的子串,意味着可以把BBB建立一个后缀自动机,然后在上面跑…… 刚开始的想法是将AAA在上面跑,并且试着修改后面一个字符,看看剩下的可以跑多长…… 于是问题就转化成求这样的一个东西:问AAA的某个后缀从后缀自动机...原创 2019-07-09 22:16:48 · 217 阅读 · 0 评论 -
[JZOJ3402] 【GDOI2014模拟】Pty的字符串
题目 给你一棵每条边从父亲指向儿子的树,每条边上面有一个字母。 从树上的任意一点出发,走出的路径就是对应一个子串。 (这不是TrieTrieTrie,因为每个父亲可能会连出字母相同的边) 再给你一个字符串SSS,让你求SSS的子串和树上路径的对应个数。 思考历程 一开始以为路径是从根节点出发,于是我就想,这难道不是一个AC自动机的裸题吗? 啪啪啪地就把AC自动机打了上去…… 然后发现样例过不去…...原创 2019-07-14 12:39:06 · 187 阅读 · 0 评论