#include <cstdio>#include <cstring>#include <cstdlib>#include <cmath>#include <iostream>#include <algorithm>UsingNamespaceStd;ConstIntRoot=0;IntTot;structNode{IntCnt;IntNext[26];voidNewNode(){Cnt=0;For(IntI=0;I<26;I++){Next[I]=-1;}}}T[1000005];voidClear(){Tot=0;T[Root].NewNode();}voidInsert(Char*Str){IntP=Root;IntLen=Strlen(Str);For(IntI=0;I<Len;I++){IntId=Str[I]-A;If(T[P].Next[Id]==-1){T[++Tot].NewNode();T[P].Next[Id]=Tot;}P=T[P].Next[Id];T[P].Cnt++;}}IntQuery(Char*Str){IntP=Root;IntLen=Strlen(Str);For(IntI=0;I<Len;I++){IntId=Str[I]-A;If(T[P].Next[Id]==-1){Return0;}P=T[P].Next[Id];}ReturnT[P].Cnt;}IntMain(){IntN,M;CharS[15];Clear();scanf("%d",&N);While(N--){scanf('%s ',S);insert (s} scanf ( "%d" , &m); while (m--) { span class= "n" >scanf ( "%s" ,s); span class= "n" >printf ( "%d\n" ,< span class= "n" >query (s} return 0;}
Trie Tree Beginner