ac自动机是多模式字符串匹配,建立在字典树的基础上。
#include<cstdio> #include<cstring> #include<string> #include<queue> #include<iostream> #include<algorithm> using namespace std; const int maxn=10005; const int cs=26; struct AC { int next[maxn][cs],val[maxn]; int id; int fail[maxn],last[maxn]; void init(){ memset(next[0],0,sizeof(next[0])); id=0; }//刚开始只初始化根节点 int GetId(char c){ return c-'a'; } void Insert(char *S,int I) //字典树插入字符串 { int s,be=0; for(int i=0;S[i]!='