AC自动机
学习参考:
http://blog.csdn.net/niushuai666/article/details/7002823
http://www.cnblogs.com/kuangbin/p/3164106.html
通过AC自动机可以建立一个状态转换图,然后在这个转换图的基础上可以解决许多问题:
由于nex[i][j]表示的是状态i的下一次选j的情况. 我们就可以这个转换 弄成 动规,矩阵快速幂,搜索等等问题。
poj 2778 DNA Sequence(AC自动机 + 矩阵快速幂)
已知一个长度为n的字符串Str由A,T,G,C组成,给你m个子串. 求不包含这些子串的Str有多少种
spoj 1676 AC自动机+矩阵快速
给你m个串,求包含任意个数这些串的长度为n的字符串的种类
hdu 2896 病毒侵袭 AC自动机(查找包含哪些子串)
查找字符串中包含了哪些子串
hdu 3065 AC自动机(各子串出现的次数)
给你m个子串,然后从一个字符串中查找这些子串哪些出现过,出现了多少次
hdu 2243 考研路茫茫——单词情结(AC自动+矩阵)
给你m个子串,求包含至少一个子串的长度不大于n的字符串的种类数
hdu 2457 AC自动机+dp
给你n个子串和一个主串. 对主串最少修改多少次后使其不包含子串
hdu 2825 aC自动机+状压dp
给你m个子串,求长度为n的主串中至少出现k个子串的方案数
hdu 2296 aC自动机+dp(得到价值最大的字符串)
给你m个子串,每个子串有自己的价值,让你求出长度为小于等于n的价值最大的字符串.
HDU 3341 Lost's revenge AC自动机+dp
给n个子串和一个字符串str,str中的位置可以随便调整.求最多可能包含多少个子串
ZOJ 3228 Searching the String(AC自动机)
给你几个子串,然后在字符串中查询它们出现的次数.但是0表示可以重复,1表示不可以
hdu 3247 AC自动+状压dp+bfs处理
给你n个正常子串,m个病毒子串,求出最短的字符串(包含所有正常子串,不包含病毒串)