随笔分类 - 字符串-AC自动机
摘要:题意$n$个01病毒串,总长不超过$30000$。问是否存在无限长的不包含病毒串的01串。 分析考虑ac自动机,如果不包含病毒串而且无限长也就是说存在一个环(转移和fail树),使得环上不含病毒串。 题解所以我们标记一下病毒串后dfs找环即可。 include <bits/stdc++.h u...
阅读全文
摘要:题意给你一些字符串。$m$次询问,每一次询问第$x$个字符串在$y$字符串中出现了多少次。(输入总长$ \le 10^5$, $M \le 10^5$) 分析在ac自动机上,$x$字符串出现的所有位置就是其它节点的fail树上有这个节点的节点。即fail树中,$x$字符串终止节点的子树。 题解根据...
阅读全文
摘要:题意给一个串$s(1 \le |s| \le 500000)$,求一个最长的串,使得这个串能覆盖整个串(可以重叠)。 分析首先这个串肯定是前缀也肯定是后缀。 题解对串kmp后,建立$fail$树,则答案在根到$n$的路径上。假设当前串为$a$,位置在$i$,则所有出现了$a$的位置相邻两个的距离要...
阅读全文
摘要:题意给出$n$个回文串$s_i(\sum_{i=1}^{n} |s_i| \le 2000000)$求如下二元组$(i, j)$的个数$s_i + s_j$仍然是回文串。 分析这道题其实是一道傻逼hash题,可是为了学习拓展kmp我就写了拓展kmp。其实我们考虑$a+b$如果是回文串,那么$a$的...
阅读全文
摘要:10分做法:由于空间卡得紧,所以给了10分暴力分0.0所以大家很容易就知道暴力就是线段树套ac自动机辣时间:$O((\sum |qSi| + \sum |nSi|)*log Q)$空间:$O((\sum |nSi|)*log n)$40-50分做法:发现我们可以用莫队做,可是有删除操作不好搞。发现其...
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=1030其实做了1009也不会感到很难了,无非将kmp变成了ac自动机。设f[i,j]表示前i个串当前匹配到j的节点的方案数。。然后自己想。sb错1:ac自动机的节点开小了(自己想错了。。以为最多节点就是...
阅读全文
摘要:复杂度:查找O(n),维护O(n)概要:应用了kmp的自匹配思想,在trie建图时维护一个fali指针,指向上一个匹配的点,这点是用bfs做到。匹配串的时候同样没匹配到就和kmp一样返回。应用:单串匹配多模板,维护多模板里边的信息。技巧及注意:插入和trie一样,然后是bfs。在bfs的过程中,注意...
阅读全文

浙公网安备 33010602011771号