![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
字符串
zzk_233
这个作者很懒,什么都没留下…
展开
-
bzoj 2434 [Noi2011]阿狸的打字机(fail树模板)
先介绍一下fail树。首先应该先学习ac自动机或者trie图好了,现在大家都知道ac自动机和trie图是如何使用的了(就当大家知道了),那么什么是fail树呢,就是把fail指针反建,因为fail指针一定只指向一个位置,所以它们连起来就是一个树的样子,而根据fail指针建立的过程,我们可以确定一个fail指针反建之后指向的点一定以当前点作为后缀,并且它的子树都以它为后缀。而在t...原创 2018-09-25 19:38:10 · 149 阅读 · 0 评论 -
bzoj 1030 文本生成器(AC自动机+dp)
前置知识ac自动机或者trie图。根据题意需要求出文章中包含1个或更多的字符串的数量。但是这明显很难求,所以求出所有方案减去不包含的数量。考虑dp,设f[i][j]表示第i位置时为AC自动机(trie图)上第j个字符没有匹配的方案数,如果这个字符的下一个字符没有匹配就可以转移,预处理那些字符可以匹配只需在求fail指针的时候继承一下fail指针的状态即可。我写的trie图代码...原创 2018-09-26 16:19:04 · 134 阅读 · 0 评论 -
AC自动机模板
题目描述,对于n个字符串,标准串中这n个字符串各出现了最多的是多少次,是那些字符串对于n个字符串,如果当前字符串在匹配过程中适配,那么就可以匹配他的父节点的失陪指针的子节点的相同字符位置,如果那个位置有字符,则可以转移,否则顺着fail指针往上跳,匹配时如果下一个点不成立,就顺着fail指针跳。匹配时从当前点到root的路径上,每一次fail指针跳到的位置都可以为答案累加。#in...原创 2018-09-26 16:36:50 · 104 阅读 · 0 评论 -
trie图模板
AC自动机链接:https://blog.csdn.net/zzk_233/article/details/82855116基于AC自动机的模板基础上,因为AC自动机一旦失配并且在没有fail指针的时候只能回到0,但是有些时候可以在另一个串上可以找到下一位匹配的串,所以可以给没有子节点的串指一个to指向父节点失配指针的子节点,这样别人查到它的时候,就可以有失配指针了。 ...原创 2018-09-27 17:53:37 · 217 阅读 · 0 评论 -
manacher模板(最长回文子串)
设p[i]为当前节点i最长回文串的右节点与i的距离,i为回文中心,而有些回文串是以空格为回文中心的,比如bb,那么为了使每个回文串都是以字符为中心,把每个字符的前后都加上一个#(操作上就是后面加上#,最后在最前面加#)。设maxp为最长的长度,p0为maxp的回文中心。那么更新p[i]的时候有两中情况。如果i<maxp时,分两种一种是可以直接到达maxp的位置也就是p0+p[p0...原创 2018-09-27 20:21:01 · 148 阅读 · 0 评论