随笔分类 -  字符串————————AC自动机

摘要:一些经典的问题: 求各个模式串在文本串中出现了几次: 方法: 在AC自动机上先跑一边文本串,记录一下每个点被经过的次数,那么单词被经过的次数就是他的结尾在fail树中的子树的权值和 找是否有一个匹配不上匹配串的环: 方法: 把所有能匹配上匹配串的节点匹配记录下来,dfs从跟开始走所有我可以走的点,如 阅读全文
posted @ 2020-11-28 09:14 小又又yyyy 阅读(161) 评论(0) 推荐(1)
摘要:problem 给出 \(n\) 个互不包含的字符串,要求你求出一个最短的字符串 \(S\),使得这 \(n\) 个字符串在 \(S\) 中总共至少出现 \(m\) 次,问 \(S\) 最短是多少。 solution 我们首先转化题意: 有 \(n\) 个点,两个点 \(i,j\) 之间的权值为将第 阅读全文
posted @ 2020-11-27 10:40 小又又yyyy 阅读(79) 评论(0) 推荐(1)
摘要:AC自动机算法流程 若我们没有构建出失败指针,则AC自动机就是一个普通的$Trie$,而用$Trie$完成上面的单词查询问题,我们需要对于文章的每一个位置$i$开始,将$S_{i\rightarrow m}$视作一个字符串,在$Trie$中进行查询,将所有所到达的节点进行标记,最后统计那些代表模式串 阅读全文
posted @ 2020-11-12 15:18 小又又yyyy 阅读(140) 评论(0) 推荐(0)