
ac自动机
zhhx2001
这个作者很懒,什么都没留下…
展开
-
ac自动机模版hdu2222
刚开始想当然的以为是求单词们出现了多少次,事实上是有多少单词出现了 其实,理解了,写这个不难 三步走 1:加单词建Trie 2:get fail和 last数组 3:套文本开始查找,延失配边走即可 #include #include #include #include #include using namespace std; int n,tot,ch[500009][30]原创 2016-07-20 20:40:17 · 329 阅读 · 0 评论 -
bzoj1030(ac自动机+dp)
设f[i][j]表示走i步,现在在j号节点的路径条数。 最后把所有f[m][i]累和就是不可读的串,一般问含有任意一个的方案数,就可以用补集的思想,总方案数减去不含有任何一个的方案数,剩下的就一定含有任意一个了! 注意一个节点的fail节点,及表示它后缀的节点,如果是单词节点,那么这个点可以在getfail时直接标记为单词节点,这样就处理出树上所有不可到达的节点,实际求不包含任意一个,原创 2016-08-06 17:21:03 · 788 阅读 · 0 评论 -
bzoj3172(ac自动机)
额,说是ac自动机,感觉乱啊 估计是数据水。。 #include #include #include #include #include #include using namespace std; char wd[205][80050]; int ch[1000005][30],n,tot,val[1000005],fail[1000005],last[1000005]; inlin原创 2016-08-06 20:54:00 · 412 阅读 · 0 评论