AC自动机 学习笔记
来源:互联网 发布:c语言做网页 编辑:程序博客网 时间:2024/06/05 09:45
Q:给出一坨短串,给出一个长串,求有多少个短串在长串中出现了。
A:把短串丢进trie树,建立fail指针,把长串在trie树上匹配,暴力蹦fail即可。每一个点只会被蹦一遍,打标记即可。
Q:给出一坨短串,给出一个长串,求每一个短串在长串中出现了多少次。
A:把短串丢进trie树,建立fail指针,把长串在trie树上匹配,能匹配上的点size都+1,然后建立fail树,统计每一个短串end节点的子树权值和即可。
Q:给出一个短串,给出一坨长串,求有多少个长串包含了短串。
A:把长串和短串都丢进trie树里,建立fail树。在fail树中,对于每一个长串的每一个点,判断其是否在短串的end节点的子树里。
Q:给出一坨短串,给出一坨长串,求每个短串出现在了几个长串里。
A:把短串丢进trie,建立fail树。把每一个长串都在trie树上匹配,匹配到的点到跟的路径上的短串的end节点权值都应该+1,然后单点查询短串end节点的权即可。不过这样比较麻烦,可以转化成单点打标记然后查询子树和。不过需要注意的是求短串的end节点是取并集,那么就需要按照dfs序排序然后将相邻两个点的lca-1,做一个容斥。
Q:给出一坨短串,给出一坨长串,求每一个长串中出现了多少个短串。
A:把短串和长串都丢进trie树,建立fail指针,在短串的end节点打标记。对于长串的每一个节点,在fail树上统计它到根的路径上有多少个标记。由于有可能计算重复,要应用容斥原理,即按照dfs序排序,然后每一次统计减去它前一个点和当前点的lca的答案。
0 0
- AC自动机学习笔记
- AC自动机学习笔记
- 学习笔记:AC自动机
- AC自动机 学习笔记
- AC自动机学习笔记
- AC自动机跟随Kuangbing学习笔记
- |算法讨论|AC自动机 学习笔记
- AC自动机——学习笔记
- AC自动机算法笔记
- AC自动机学习
- AC自动机学习记录
- AC自动机学习小记
- AC自动机的学习
- ac自动机学习
- AC自动机学习
- AC自动机学习小记
- AC自动机学习、
- AC自动机学习总结
- 关于 Nim游戏与SG函数 的一点研究
- TensorFlow11: 图像分类器 – retrain谷歌Inception模型
- 《大话数据结构》边读边感
- 第一次总结
- 语音识别系统
- AC自动机 学习笔记
- ZigZag Conversion
- FFMPEG编译
- Spring Boot devtools实例
- Akamai与Limelight
- Windows安装TensorFlow(TF更新至0.12版,添加了Windows支持)
- danielgindi/Charts柱形图barChartView使用
- op 豪兰得电流源
- JavaScrpt笔记之第二天