当本蒟蒻在自己看AC自动机的时候
从洛谷的题解里扒题解下来预习
建树和fail指针挺好懂的
但是这个匹配过程怎么看都看不懂
而且没人讲。。。。。
求解释~
int check(string s){
int l=s.length();
int sp=0;
int ans=0;
for(int i=0;i<l;i++){
sp=trie[sp].vis[s[i]-'a'];
for(int i=sp;i&&trie[i].end!=-1;i=trie[i].fail){
ans+=trie[i].end;
trie[i].end=-1;
}
}
return ans;
}