摘要: P4052 [JSOI2007]文本生成器 AC自动机+dp 优秀题解传送门 设f[ i ][ j ]表示串的长度为 i ,当前在 j 点时不可识别的串的方案数 最后用总方案数减去不可识别方案数就是答案了 因为题解写的很好所以我就只在代码中加点注释了(逃 阅读全文
posted @ 2018-09-10 21:30 kafuuchino 阅读(215) 评论(0) 推荐(0) 编辑
摘要: P3121 [USACO15FEB]审查(黄金)Censoring (Gold) (银的正解是KMP) AC自动机+栈 多字符串匹配 >AC自动机 删除单词的特性 >栈 所以我们先打个AC自动机模板 然后搞2个栈维护: 每次碰到有结尾标记的点,就让2个栈弹出这个点所对应的单词的长度 最后输出第二个栈 阅读全文
posted @ 2018-09-10 19:24 kafuuchino 阅读(233) 评论(0) 推荐(0) 编辑
摘要: P3966 [TJOI2013]单词 AC自动机 题意:输入若干个单词,对于每个单词,计算它在所有单词中出现的次数(原题讲的什么鬼)。 attention:有重复单词,还很多 显然,我们可以用AC自动机来搞 但是对每个单词都需要跑一遍要用极大的空间来存-->MLE。 于是我们想到用一个主串把这些单词 阅读全文
posted @ 2018-09-10 15:52 kafuuchino 阅读(228) 评论(0) 推荐(1) 编辑
摘要: P2444 [POI2000]病毒 AC自动机(模板题) 题解传送门 一个重要的性质(同样适用于KMP):一个串末尾节点的fail数组指向的子串一定是这个串的后缀 (我真的不想再忘了) 我们的目标是在AC自动机的图中找到一个环,里面没有任何病毒标记 和以往的AC自动机不同,我们在匹配的过程中要避开病 阅读全文
posted @ 2018-09-09 22:03 kafuuchino 阅读(231) 评论(0) 推荐(0) 编辑
摘要: P3294 [SCOI2016]背单词 Trie+贪心 倒插进树+取出重建+子树处理+贪心遍历 倒插进树:把后缀转化为前缀,所以把字符串倒着插进Trie中 取出重建:重新建立一棵以单词为节点的树,如果存在包含(前缀)关系就连边 子树处理:处理出每棵树的大小用于贪心 贪心遍历:遍历整棵新树,累加答案 阅读全文
posted @ 2018-09-09 18:25 kafuuchino 阅读(209) 评论(0) 推荐(0) 编辑
摘要: P2922 [USACO08DEC]秘密消息Secret Message Trie Trie典型统计题 在这题中,我们不是单纯的统计一个串是否是另一个串的前缀,而要统计数量。 在这里,我们引入一个tot标记,表示有多少串包含这个节点(不累计串的结尾)。 当询问的串在路径上的u点时,加上的是a[ u 阅读全文
posted @ 2018-09-09 10:00 kafuuchino 阅读(176) 评论(0) 推荐(0) 编辑
摘要: P2292 [HNOI2004]L语言 Trie+论快读的重要性 加了快读TLE --> <=200ms 事实证明对于这种大量读入字符的题我们要手!写!快!读!(getchar大法好) (然而正解是Trie+dp/AC自动机) 好了,进入正题 我们用Trie把字典存起来,然后对于所给的串,在Trie 阅读全文
posted @ 2018-09-09 09:19 kafuuchino 阅读(226) 评论(0) 推荐(0) 编辑
摘要: UVA644 Immediate Decodability Trie Trie模板题 难度几乎相等的题 P2580 于是他错误的点名开始了 对于每组数据都清空树太浪费时间,所以我们只要在需要新点时预先把新点原有的数据清空即可。 剩下除了一些细节要注意,没啥要说的了 (luogu的标签系统有些迷啊) 阅读全文
posted @ 2018-09-09 08:20 kafuuchino 阅读(150) 评论(0) 推荐(0) 编辑
摘要: P3435 [POI2006]OKR-Periods of Words 题解传送门 kmp 注意:由于题目说只要A满足是2Q的前缀,所以求的不是严格的最大循环子串(20pts) 我们需要求出的是在主串中最小的,既是前缀又是后缀的子串 利用f数组的性质:前缀i的长度为next[i]的前缀和后缀是相等的 阅读全文
posted @ 2018-09-08 20:59 kafuuchino 阅读(143) 评论(0) 推荐(0) 编辑
摘要: P4391 [BOI2009]Radio Transmission 无线传输 kmp 题目让我们求一个串的最小循环子串 我们回想一下kmp中的失配函数 用 f 数组保存当前字符匹配失败后,需要跳到的前一个匹配字符 而题目说主串是某个子串不断自我连接形成 那么从 子串(长度设为 i )结束的后一个字符 阅读全文
posted @ 2018-09-07 22:21 kafuuchino 阅读(204) 评论(0) 推荐(0) 编辑