AC自动机应用
1.求多组单词是否分别在文章中出现,出现次数
hdu2222,bzoj3172(每个节点都累加到它的fail节点上)
2.求每个单词的前缀在文章上的最大匹配长度
玄武密码bzoj4327
3.是否存在无限长的字符串,不包含给定的单词
ac自动计上dfs,有环则存在
4.求一个长度为n的字符串,使其至少包含一个给出的单词
先建立ac自动机,建立矩阵A(x),维度为cnt*cnt,cnt为trie树节点个数
\(A_{ij}\)为i节点到j节点走一步的方案数
注意\(A_{ii}\)有方案数,同时节点i到节点j(j在trie树上不存在)也有方案数
然后矩阵快速幂即可
bzoj1030(数据小可直接dp),poj2778
5.最短母串,使其包含所有给定的单词
ac自动机上状压dp,\(f[i][j]\)为到i节点,状态为j(用2进制表示给定单词是否存在)的最短母串长度
bzoj1195

 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号