
字符串——AC自动机
文章平均质量分 80
XDU_Skyline
Everything is over, everything is just beginning.
展开
-
例题3.15 子串 UVa11468
1.题目描述:点击打开链接2.解题思路:本题利用概率dp+AC自动机解决。首先,把所有的模板串加入到Trie,然后标记所有单词结点,然后每次随机生成一个字符,就相当于在AC自动机中随机走一步,而且只允许走不被标记的结点。令d(u,L)表示当前在结点i,还需要走L步,不进入任何禁止结点的概率。那么不难由全概率公式得到下式:d(u,L)=sum{P[v]*d(v,L-1)|v是一个没有被禁止的原创 2015-08-28 15:24:05 · 1074 阅读 · 0 评论 -
例题3.14 出现次数最多的子串 LA4670
1.题目描述:点击打开链接2.解题思路:本题利用AC自动机解决。本题给的文本串非常长,但是模板串又多而短,正好适合AC自动机。然而一个问题是如何统计出现的次数。这里直接在print函数中递归统计。《训练指南》上说因为有重复的模板,需要用一个map来索引,但是本题由于已经把所有的模板保存到P数组了,没有这个索引也可以做。3.代码:#include#include#include#i原创 2015-08-28 14:34:35 · 1095 阅读 · 0 评论