#include #include #include #include #include #define MAXN 100006 #define kind 26 using namespace std; char word[MAXN]; struct Node { int next[kind],v,fail; }Trie[5*MAXN+10]; int snode; int N; int cas; void set_node(int x) { memset(Trie[x].next,0,sizeof(Trie[x].next)); Trie[x].v=0; Trie[x].fail=0; } void Insert(char s[]) { int i=0,pos=0,index; int len=strlen(s); for(i=0;iQ; void Build_AC_Fail() { int i,pos; while(!Q.empty()) Q.pop(); Trie[0].fail=-1; Q.push(0); while(!Q.empty()) { pos=Q.front();Q.pop(); for(i=0;i