定义:
CH 取数据范围
const int NODE = 105 , CH = 4 ,mod = 100000;
int ch[NODE][CH], val[NODE] ,sz , fail[NODE];
初始化:
只要清空ch[0],注意sz是从1开始;
void init()
{
sz=1;
memset(ch[0],0,sizeof(ch[0]));
}
插入:
void insert(char *s)
{
int u=0;
for(;*s;s++)
{
int c=idx(*s);
if(!ch[u][c])
{
memset(ch[sz],0,sizeof(ch[sz]));
val[sz]=0;
ch[u][c]=sz++;
}
u=ch[u][c];
}
val[u]=1;
}
重......
阅读全文