AC自动机
文章平均质量分 77
nuaalida
这个作者很懒,什么都没留下…
展开
-
AC自动机 LA4670
这题调了好久: 问题1:Trie图的节点数给小了,应该是150*70,我给的是150*26,少脑子了; 问题2:就是数组开小了,老是提交超时,导致开始怀疑算法的复杂度有问题; 另外,LA上这题的数据非常弱,非常非常弱。 AC自动机的本质:先把模板串建成Trie树,然后根据KMP的思想用BFS建Trie图,说穿了就是维护两个数组,f[u]往回找,last[u]指向其他较短模板串的节点原创 2013-10-09 23:00:04 · 460 阅读 · 0 评论 -
AC自动机 UVa11468
在给定的字符下,任意搭配,不含有任一模板串的概率,抽象的最终问题是:在Trie图上走L步,保证每一步不是单词节点,用记忆化搜索,这是对节点是否为单词节点的标记是match[u] |= match[f[u]],不再需要维护val[u]和last[u]。 还是稍微有些不好理解的。 #include #include #include #include #include using n原创 2013-10-12 09:18:17 · 463 阅读 · 0 评论 -
AC自动机 UVa11019
这题的AC自动机不用维护last数组,找到每个左上角的匹配行数,如果恰好等于x,那么刚好就是一个完整的二维匹配。 但是,不明白为什么一直WA啊,看了别人的代码感觉都差不多啊,我也考虑了模板串多行相同的情况啊,郁闷了。 #include #include #include #include #include using namespace std; #define SIG 26原创 2013-10-13 10:47:34 · 433 阅读 · 0 评论