HDU 2896 AC自动机 (二)

2014-11-23 22:13:32 · 作者: · 浏览: 16
void deleteAll(node *p){ for (int i = 0 ; i < 128 ; i ++ ) if(p -> next[i] != 0){ deleteAll(p -> next[i]) ; } delete p ; } char a[11111] ; int num[1111] ; int main() { int n ; cin >> n ; getchar() ; root = new node() ; for (int i = 1 ; i <= n ;i ++ ){ gets(a) ; insert(a ,i ) ; } int m ; cin >> m ; getchar() ; build() ; for (int i = 1 ; i <= m ;i ++ ){ gets(a) ; num[i] = search(a , i) ; } int cc = 0 ; for (int i = 1 ; i <= m ;i ++ ){ if(num[i]){ printf("web %d:",i) ; for(set
::iterator p = anss[i].begin() ; p != anss[i].end() ; ++ p) cout <<" "<< *p ; cc ++ ; puts("") ; } } printf("total: %d\n",cc) ; deleteAll(root) ; return 0 ; }