字典树模板
struct node
{
int flag;
int id;
node *next[27];
node()
{
flag=0;
id=0;
memset(next,0,sizeof(next));
}
}root;
int inserts(char *w){
node *p=&root;
for(int i=0;w[i]!='\0';i++)
{
int tmp=w[i]-'a';
if(!p->next[tmp])
p->next[tmp]=new node;
p=p->next[tmp];
}
if(p->flag)return p->id;
p->flag=1;
p->id=cnt++;
return p->id;
}