week4_AC自动机

类似于week2,3;
然后这一节题目说是Trie图,其实用AC自动机更容易搜出来结果。
对于一个M<=10^6的字符串;N个长度为L的单词;
最差的办法:
对于M枚举起始位,采用week2的trie树方案,尝试在单词trie树上走到某结点;
讲解比较细的版本:Trie图
过程和kmp非常类似。
kmp的过程是:如果匹配成功,那么向前平移对准,next[i]=j;
如果匹配失败,那么j=next[j],即调整到可能的匹配位置。
类似的,对于trie图:
如果匹配成功,向前移位;
如果匹配失败,那么将齐位校准到可能的匹配位。用来代替next数组寻找最长匹配(失败段的后缀,也就是新匹配的前缀)位置的,就是后缀指针。(hiho说是后缀,上文引用的blog说是前缀,随意啦)
看了看范叔叔和学弟的模板。。。压力很大啊。

过了好tm久翻到ac自动机才又想起来我这儿还有个这 额滴神啊。
赶紧解决掉。。。
捋一遍流程:
每个节点包括:
对应字符串;后缀指针指向的字符串;到达后缀节点后每条路径走出的字符串(包括父节点后缀指向得到的字符串,由bfs得出);

初始化:根节点对应null;根节点及其子后缀指针也null;
然后建树,查找。嗯 我选择抄板子先。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 归去来兮。 1.1 说明 本篇为《挑战程序设计竞赛(第2版)》[http://www.ituring.com.cn...
    尤汐Yogy阅读 14,951评论 0 160
  • 数据结构与算法--KMP算法查找子字符串 部分内容和图片来自这三篇文章: 这篇文章、这篇文章、还有这篇他们写得非常...
    sunhaiyu阅读 1,903评论 1 21
  • 文不达意,口齿不清,思想混乱,令人喷饭。(估计只有我自己才能看懂我在说什么)简书没有mathjax公式没法愉快显示...
    njzwj阅读 1,278评论 1 2
  • LeetCode 刷题随手记 - 第一部分 前 256 题(非会员),仅算法题,的吐槽 https://leetc...
    蕾娜漢默阅读 18,456评论 2 36
  • 大三快结束的暑假,我去丽江实习,这一路上发生了不少事情,其中一件事情让我难受了很长一段时间。 于是当我在前段时间,...
    沐尤一阅读 549评论 4 5

友情链接更多精彩内容