摘要: P5357 AC自动机(二次加强版) 题意: 给出一个文本串S和n个模式串,分别求出每个模式串在S中出现的次数。 思路: 多个模式串一个匹配串,标准的AC自动机,题目求每个模式串在文中出现的位置,可以在匹配文本串的时候,经过每个点都赋值为1,因为以该点为单词结尾一定存在该文本串中,但是因为可能该单词 阅读全文
posted @ 2022-08-07 18:04 zxr000 阅读(44) 评论(0) 推荐(0) 编辑
摘要: P3311 数数 题意: 我们称一个正整数 $x$ 是幸运数,当且仅当它的十进制表示中不包含数字串集合 $s$ 中任意一个元素作为其子串。例如当 $s = {22, 333, 0233}$时,$233$是幸运数,$2333、20233、3223$ 不是幸运数。给定 $n$和 $s$,计算不大于 $n 阅读全文
posted @ 2022-08-07 18:03 zxr000 阅读(70) 评论(0) 推荐(0) 编辑
摘要: P4052 文本生成器 题意: 给出n个单词,求至少包含其中一个单词的固定长度的文章的数量。 思路: 如果是求,怎么组成使得一个子串都没有的话,就很好求,如果当前位置到达了,单词末尾的话,就舍掉就可以了,但是,这里是求至少包含一个单词的固定长度的文章的数量,怎么办呢? 相当一个字符串,要么就是至少包 阅读全文
posted @ 2022-08-07 18:00 zxr000 阅读(31) 评论(0) 推荐(0) 编辑
摘要: P3121 Censoring G 题意: 给出一个字符串,给出一堆子串,每次删除左边第一个子串,输出最终通过删除没有子串的字符串。 思路: 因为是一对多,所以可以很自然的想到利用AC自动机。+栈,注意因为删除之后,当前到达的位置是现在栈顶所在的位置,所以还需要存储每个元素指到哪里。 实现: #in 阅读全文
posted @ 2022-08-07 17:59 zxr000 阅读(38) 评论(0) 推荐(0) 编辑
摘要: P3041 Video Game G 题意: 一个字符串由,ABC三个字符构成,给出$n$个由A,B,C组成的组合技,求怎么安排字符串可以使得组合技最多。 思路: 因为如果当前的后缀可以的话,现在也必然可以,所以在构建AC自动机的时候,要加上cnt[ne[t]]也就是可以的后缀数量,因为是一层一层的 阅读全文
posted @ 2022-08-07 17:58 zxr000 阅读(26) 评论(0) 推荐(0) 编辑
摘要: Acwing 1053 修复DNA 题意: 给出$n$个字符串,这些字符串为致病因子,给出一个字符串,求将这些字符串处理成没有致病因子,最少需要改变多少个字符数量 请问,其中有多少个单词在文章中出现了。 思路: 利用AC自动机来实现多字符串匹配,设f[i][j]为,前i个字符,当前匹配到j。 注意标 阅读全文
posted @ 2022-08-07 17:52 zxr000 阅读(25) 评论(0) 推荐(0) 编辑
摘要: Acwing 1282 搜索关键词 题意: 给定 $n$ 个长度不超过 $50$的由小写英文字母组成的单词,以及一篇长为$m$的文章。 请问,其中有多少个单词在文章中出现了。 思路: AC自动机模板题目 但是由于匹配到的是和当前的的字符串最长的字符位置,但是可能里面包含则其他单词,所以要不断的找和当 阅读全文
posted @ 2022-08-07 17:49 zxr000 阅读(25) 评论(0) 推荐(0) 编辑