摘要: 题目传送门 题意:给出$s$和$t$两个串,让你构造出一个答案串,使得答案串中的01数量和s一样,并且使$t$在答案串中作为子串出现次数最多。 思路: 要想出现的次数尽可能多,那么就要重复的利用,哪一部分是可以重复利用的呢?就是前缀和后缀相同的部分,然后我们就想到了$kmp$算法中$fail$函数就 阅读全文
posted @ 2019-03-10 22:06 光芒万丈小太阳 阅读(231) 评论(0) 推荐(0) 编辑
摘要: 题目传送门 思路: 要求构建一个字符串,使得这个字符串不包含给出的任意一个单词。 如果我们已经构建出了一个安全代码,放在ac自动机上跑,那么我们必定不能得到任何一个字符串,此时我们得到的fail指针必定是在一个环上循环,并且这个环不包含单词的末尾。 我们也知道fail指针最后是会指回0点的,那么此时 阅读全文
posted @ 2019-03-10 20:18 光芒万丈小太阳 阅读(148) 评论(0) 推荐(0) 编辑
摘要: AC自动机学习博客 AC自动机理解要点: 1)fail指针指向的是每个节点,在字典树上和这个节点后缀相同的最长单词,每次都这样匹配,必定不会漏过答案。 2)字典树建立后,会在bfs求fail阶段把字典树变成一个字典树图(不知道理解的对不对),就是把字典树的末尾节点再往下添加一层,并且连接到fail指 阅读全文
posted @ 2019-03-10 16:17 光芒万丈小太阳 阅读(133) 评论(0) 推荐(0) 编辑