浅谈AC自动机

标题是浅谈,那么我也就不过多的深入钻研了

顶多算是说说定义,带大家看看代码

首先,AC自动机,很多人看了这个算法名字,就自然的很慌,就不敢学

其实静下心来,慢慢看,会发现其实比KMP还要容易理解(只不过是多模式串匹配,树形结构还很容易看出共同的前缀)

AC自动机其实是在Trie树上进行一个类似于KMP的匹配操作(来自某Dalao)

首先是要建一棵Trie字典树,具体如下:

void pre(){ int c=1; for(int i=1;i<=len;i++){ int f=a[i]-'a'; if(!trie[c][f]) trie[c][f]=++tot;//判断在之前是否出现过 c=trie[c][f]; } vis[c]++;//根据题目描述的不同改变 return ; }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgwxdg.html