![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ac自动机
文章平均质量分 79
yrleep
大学毕业不久,ios游戏自由开发者。
展开
-
poj 2778 DNA Sequence
ac自动机处理字符串,dp计算答案,用矩阵来加速#include #include #include #include using namespace std; const long long mod=100000; struct { int next[30],tmp,fail,lon; }trie[111]; int lon; int m,n; struct matrix {原创 2013-06-24 00:10:45 · 1263 阅读 · 0 评论 -
1625 Censored! ac自动机+dp+高精度
ac自动机+dp+高精度 ac自动机的节点作为状态,dp[i][j]表示长度为i状态为j的种类数。转移时注意已经是串的节点不能转移并且不能被转移即可。 需要注意的一点是输入的字符的ascll码有负数。 #include #include #include #include using namespace std; const int N=500; char use[501]; i原创 2013-06-25 11:11:23 · 727 阅读 · 0 评论 -
poj 3691
ac自动机+dp 自动机上的节点来作为状态 dp[i][j]表示长度为i状态为j至少需要转换多少个字符 #include #include #include #include using namespace std; const int root=0,N=4; char a[1111]; int dp[1111][1111],c[1111][10]; struct { in原创 2013-06-26 12:03:42 · 909 阅读 · 0 评论 -
hdu 4057 Rescue the Rabbit
ac自动机的状压dp dp[i][j][k]表示长度为i,包含字符串的状态为j,自动机的状态为k是否可行。 #include #include #include #include using namespace std; const int root=0,N=4; int n,m; bool dp[2][1111][1111]; int c[1111][10],a[111]; int原创 2013-06-26 22:54:02 · 748 阅读 · 0 评论 -
hdu 4117 GRE Words 11年成都现场赛
离线建树,然后按顺序把值插入,每插入一个值的时候就按着fail算出该节点的最优解。 一个优化,那些值小于0的节点直接去掉。 #include #include #include #include using namespace std; const int maxn=3e5+9,N=26,root=0,maxm=2e4+9; int cas=0; int lon; struct {原创 2013-11-29 15:14:44 · 906 阅读 · 0 评论