
AC自动机
LZJ209
主页:https://zongjia.li/
展开
-
HDU 2222 AC自动机模板题
这道题真的是不想说什么了,数组没开够tmd报TLE,艹,白浪费老子一个小时的大好时光_________________________________ 这道题建出ac自动机之后顺着next指针跳(代码中用fail直接代替了),每个点都加上一个标记只能算一次就完事了QAQ#include<cstdio>#include<cstdlib>#include<cstring>#include<str原创 2016-12-27 21:16:28 · 421 阅读 · 0 评论 -
BZOJ 2938: [Poi2000]病毒 AC自动机
Description二进制病毒审查委员会最近发现了如下的规律:某些确定的二进制串是病毒的代码。如果某段代码中不存在任何一段病毒代码,那么我们就称这段代码是安全的。现在委员会已经找出了所有的病毒代码段,试问,是否存在一个无限长的安全的二进制代码。 示例: 例如如果{011, 11, 00000}为病毒代码段,那么一个可能的无限长安全代码就是010101…。如果{01, 11, 000000}为病原创 2016-12-28 18:41:07 · 324 阅读 · 0 评论 -
BZOJ 1030: [JSOI2007]文本生成器 AC自动机
给出N个由大写字母组成的字符串,再给出一个长度M 求有多少个由大写字母组成的长度为M的字符串满足“至少包含这N个字符串中的一个” A包含B指的是,B是A的子串 答案对10007取模N<=60,每个字符串的长度<=100,M<=100解析:这道题正着想显然是有点难,那我们就倒过来,用所有可能的文章总数减去不包含给定字符串的数量。 设F[i][j]表示匹配前i个字母之后走到了AC自动机的j号节点原创 2016-12-28 18:48:22 · 442 阅读 · 0 评论 -
BZOJ 1212: [HNOI2004]L语言 AC自动机
Description标点符号的出现晚于文字的出现,所以以前的语言都是没有标点的。现在你要处理的就是一段没有标点的文章。 一段文章T是由若干小写字母构成。一个单词W也是由若干小写字母构成。一个字典D是若干个单词的集合。 我们称一段文章T在某个字典D下是可以被理解的,是指如果文章T可以被分成若干部分,且每一个部分都是字典D中的单词。 例如字典D中包括单词{‘is’, ‘name’, ‘what’, ‘原创 2016-12-28 18:52:14 · 417 阅读 · 0 评论 -
BZOJ 2434: [Noi2011]阿狸的打字机 AC自动机 fail树
一道AC自动机好题啊,做完了以后对AC自动机有了一个新的认识,首先由于这道题的特殊性我们无需一个一个字符串插入,只要维护一个father指针往回跳就行了,建好树了以后怎么办呢,我们可以想到A在AC自动机上是B的子串当且仅当B的节点跳fail指针可以跳到A,但是这样时间复杂度太大,由于fail指针总是由下向上指所以我们能想得到如果将fail倒过来那么将形成一颗树,我们称之为fail树,那么B的节点跳f原创 2016-12-28 19:14:46 · 382 阅读 · 0 评论