hduoj-----(2896)病毒侵袭(ac自动机)(二)

2015-07-20 17:31:32 · 作者: · 浏览: 14
int i=0;i ?98?????? printf(" %d",ans[i]);
?99???? puts("");
100???? res++;
101?? }
102 }
103 void del(Trie *root)
104 {
105?? if(!root) return ;
106?? for(int i=0;i<127;i++)
107?? if(root->child[i])
108????? del(root->child[i]);
109?? delete root;
110 }
111 int main()
112 {
113?? #ifdef LOCAL
114???? freopen("test.in","r",stdin);
115?? #endif
116?? int n,m,i;
117?? while(scanf("%d",&n)!=EOF)
118?? {
119??????? Trie *root=new Trie;
120????? for(i=0;i<127;i++)
121??????? root->child[i]=NULL;
122??????? root->fail=NULL;
123??????? root->id=0;
124????? for(i=1;i<=n;i++)
125????? {
126??????? scanf("%s",s1);
127?????? _insert(s1,root,i);
128????? }
129?????? ac_fail(root);
130?????? scanf("%d",&m);
131?????? res=0;
132????? for(int i=1;i<=m;i++)
133???? {
134?????? scanf("%s",t1);
135??????? memset(vis,0,sizeof(vis));
136?????? solve(t1,root,i);
137???? }
138???? printf("total: %d\n",res);
139???? del(root);
140?? }
141??? return 0;
142 }

?