代码
const int ChSize=5; struct PerTrie { int next[maxn*20][ChSize]; int id,inf[maxn*20]; void init() { memset(next[0],0,sizeof(next[0])); inf[0]=0; id=0; } int GetId(char c){ return c-'a'; } void Insert(int& rt,int pre,char* S,int x) //插入 { rt=++id; inf[rt]=inf[pre]+1; for(int i=0;i<ChSize;i++) next[rt][i]=next[pre][i]; //把前面的赋给当前 if(S[x]=='