
字符串----AC自动机
长沙橘子猫
这个作者很懒,什么都没留下…
展开
-
南阳oj 1085 AC自动机 一般(有点坑)
点击打开题目 题目意思很明确,AC自动机没什么好说的,不过这个题有个地方有点坑,就是有些同样的单词会多次输入,而且输出的时候按照顺序来,只要满足频率最高,就算同样的单词已经输出了还要再输出 AC代码: #include<cstdio> #include<cstring> #include<queue> #include<cstdlib> ...原创 2017-10-12 19:38:13 · 528 阅读 · 0 评论 -
UVA 11468 Substring AC自动机+记忆化搜索
UVA 11468题意:给出一些字符和各自对应的选择概率,随机选择 L 次后将得到一个长度为 L 的随机字符串 S 。给出 K 个模板,计算 S 不包含任何一个串的概率。思路:首先将模板字符串建成字典树,有单词的节点标记为禁止,然后再把 S 和字典树匹配,并求 S 匹配完且不走禁止点的概率。设d[ i ][ j ]为当前在 i 节点还剩下 j 步没匹配完的概率,那么很明显d[ i ][ j ]+=...原创 2018-05-22 19:43:49 · 207 阅读 · 0 评论 -
UVA 11019 Matrix Matcher AC自动机
UVA 11019题意:给出一个n*m的字符矩阵T,你的任务是找出给定的x*y的字符矩阵P出现了多少次,即需要在二维文本串T中查找二维模式串P。思路:这题的最优解应该是hash,不过就当给自动机练练手了,先将P的每一行字符串建立自动机,然后再将T中的每一行字符串去匹配,用一个ans[ r ][ c ]表示T中以(r,c)为左上角,与P等大的矩形中有多少行字符串是完全等同于P的,这样ans[ r ]...原创 2018-06-01 20:05:13 · 254 阅读 · 0 评论 -
LA 4126 Password Suspects AC自动机+dp
LA 4126 题意:已知某未知字符串长度为n,全部为小写,还知道该字符串的m个子串,求符合条件的该字符串个数,如果个数小于等于42,输出所有可能的字符串。 思路:将m个子串建立自动机,设d[ k ][ u ][ s ]为当前在节点u,已经走过的子串集合为S,已经走了k步的路径数,那么当k==n且s为全集的时候,就把合理的走法,把路径加上去,由于还要输出路径,因此把dp公式反过来,d[0][0...原创 2018-07-20 17:22:43 · 315 阅读 · 0 评论 -
2018北京icpc区域赛 H - Approximate Matching AC自动机
H - Approximate Matching 题意:有一个长度为n的01母串,求有多少个长度为m的01串T,使得母串是该串近似的子串。a是b的近似子串:那么b存在一个连续子串c,a与c至多只有一个字符不同 解法:我们先把母串和所有与其只有一个字符不同的01串插入字典树,建立AC自动机,预处理从每个节点出发,有d[u]d[u]d[u]条长度为n的路径刚好走完才走到叶子节点,然后我们枚举母串与...原创 2019-09-27 21:41:22 · 560 阅读 · 0 评论 -
Educational Codeforces Round 16 F. String Set Queries AC自动机
F. String Set Queries 题意:有三种操作:分别是往集合加入一个字符串,从集合中删除一个字符串,查询集合的所有串在询问串中出现次数的总和。 解法:离线可以建AC自动机fail树上dfs序搞,强制在线可以采取二进制分组去建log个自动机A,二进制分组是个什么东西呢?举个例子:我往集合插入8次字符串,那么8次更新集合中所有自动机的大小分别是{1},{2},{2,1},{4},{4,...原创 2019-09-28 01:00:21 · 219 阅读 · 0 评论