一篇十分详尽的讲稿

一.概念:

  对于关于字符串S的SAM,它将包含且只包含S所有子串。

二.关键(endpos类):

  对于一个子串T,它在原串出现的位置的右端点组成的集合为它的endpos集合。

  对于一个子串有其唯一的endpos集合,对于一个endpos类包含了多个子串。

  关于一个字符串的任一endpos类,它所包含的子串互为后缀

  任两个不同的endpos集合存在且只存在两种集合关系:属于或无交 。(此性质为其能形成树形结构奠定了基础。)

三.性质:

  1.双面性:它存有两种边,分别与节点组成 DAG图 和 树形结构 ,且节点在两种结构中的意义大有区别

  2.关于 DAG图 ,一个节点表示的是一个字符,从超级点出发的任一条路径的字符顺次连接组成的字符串为原串的一个子串。

  3.关于 树形结构 ,一个节点表示的是一个 endpos类 。对于存在祖代关系的两个节点 ,满足祖辈节点表示的 endpos集合 包含后辈节点表示的endpos集合 。而且一个节点进而能表示一坨互为后缀且连续的字符串。一般我们会记录每个节点在此意义下表示的字符串中最长的字符串的长度。而且这个最长的字符串的所有后缀将被此节点到超级点的所有节点无重复的包含。

  4.对于每一个节点,在 DAG图 上从超级点跑到当前点的所有字符串能被一个集合表示,而考虑在 树形结构 中也存在一个集合。其实这两个集合等价。

转载于:https://www.cnblogs.com/wyher/p/11027923.html

后缀自动机(我太蒟了!)相关推荐

  1. 【bzoj3926】[Zjoi20150]诸神眷顾的幻想乡 后缀自动机+trie

    Description 幽香是全幻想乡里最受人欢迎的萌妹子,这天,是幽香的2600岁生日,无数幽香的粉丝到了幽香家门前的太阳花田上来为幽香庆祝生日. 粉丝们非常热情,自发组织表演了一系列节目给幽香看. ...

  2. BZOJ3238 后缀自动机+推公式

    拿到题目第一步就把前面的len(Ti)+len(Tj)手算出来了 可以知道这个答案只和n有关系 为n*(n+1)*(n-1)/2 (如果不会手算On跑出来也行 问题不大) 后面求LCP就是重点了 通常 ...

  3. 【BZOJ3926】【Zjoi2015】诸神眷顾的幻想乡 广义后缀自动机

    链接: #include <stdio.h> int main() {puts("转载请注明出处[vmurder]谢谢");puts("网址:blog.csd ...

  4. 简(kun)单(nan)到让我开(jue)心(wang)的后缀自动机全家桶(普通后缀、广义后缀、子序列)...

    目录 参考文献 后缀自动机是什么神仙玩意? 例题 right集合.等价类以及Parent树 定义 等价类性质 Trie?DAG? 自动机?自动鸡? 自动机的基本性质 一定存在后缀自动机吗? 后缀自动机 ...

  5. 【USACO06DEC】—牛奶模式Milk Patterns(后缀自动机)

    传送门 后缀自动机板子题了吧 只需要求Parent−TreeParent-TreeParent−Tree上非叶子节点的最长的lenlenlen就可以了 因为字符集太大又不想离散化 就直接用mapmap ...

  6. 51nod 1600 Simplr KMP(后缀自动机+维护树上的数据结构)

    题意:对于每个位置,统计有多少个相同的字串. 分析:按照题目的意思,把fail树画出来就会发现,对于第i个字符:ans[i] = ans[i-1] + (ans[i-1]-ans[i-1]) + ca ...

  7. 2021ICPC(澳门) - LCS Spanning Tree(广义后缀自动机)

    题目链接:点击查看 题目大意:给出一个含有 nnn 个点的无向图,点权为一个字符串,每条边的边权为相邻两点的 LCSLCSLCS,本题的 LCSLCSLCS 定义为两个字符串的最长公共子串的长度 求出 ...

  8. 美团杯2020 - 半前缀计数(后缀自动机)

    题目链接:点击查看 题目大意: 蒜斜刚来PKU的时候还不知道有"北大算协"这个社团,因此他总是觉得周围的人在偷偷议论着他,比如说: "算协(注:非蒜斜)举办的活动好有趣啊 ...

  9. [学习笔记]后缀自动机

    解决大部分字符串问题的大杀器 给一下clj课件:戳我 SAM是一个博大精深的算法.虽然没有像网络流家族,Tarjan家族一样拉帮结派,但是自身包含很多方法. 一.前言 字符串常见问题:各种匹配 1.L ...

  10. 【正睿2021寒假省选第二轮集训 day 1】串 (后缀自动机+记忆化)

    description 定义一个字符串的子串是这个字符串的某个连续区间的字符组成的串.比如,"djq"的子串是"d","j","q ...

最新文章

  1. android button背景随心搭配
  2. 排列与组合的一些定理(二)
  3. mxnet自定义训练日志
  4. 3.11 随机初始化-深度学习-Stanford吴恩达教授
  5. 中国9大民居建筑,你都认识吗?
  6. Java开发必会的反编译知识
  7. 大数据日知录_腾讯T4专家精心整理:java+大数据+机器学习+数据挖掘+算法大集结...
  8. Sybase Adaptive Server Anywhere ISQL 8.0 绿色汉化版发布
  9. DSP双线性变换详解
  10. Unity3D实现AB包加载资源
  11. matlab根号2,在matlab中,运行指令a=sqrt(2),计算结果a是精准的根号2吗
  12. 从零开始学PCR技术(四):常见问题
  13. 浅谈Windows API编程 (这个经典)
  14. ftp下出现“当前的安全设置不允许从该位置下载文件”提示
  15. 研究生英语写译教程(提高级/第三版)_翻译篇 笔记及答案
  16. qt 3d迷宫游戏_鲨话游戏史FPS游戏竟然40年前就有了?暴露年龄系列,慎入!
  17. python3报错: takes 1 positional argument but 2 were given 问题解决。
  18. PHP系统常量及判断某常量是否被定义
  19. 分时系统中,当用户数目为100时,为保证响应时间不超过2s,此时的时间片最大应该为
  20. 财务经历——京东换新服务/常用常新:一次换新经历匹配自己的知识库

热门文章

  1. 怎么实现边下载边播放
  2. 磷脂PEG化靶向蛋白肽系列 DSPE-PEG- RGR(CRGRRST)/ TH/ R8/ NGR 为华生物提供
  3. JAVASE温故知新
  4. 骨干计算机专业,计算机教导非本专业与骨干专业的融洽
  5. 我的世界html导入整合包教程,我的世界Windows整合包移植到Mac教程
  6. QT中connect、disconnect和信号槽实现原理
  7. 【Qt】disconnect一个lambda匿名函数
  8. 灰色关联分析模型(C++代码)
  9. 网络工程师的敲门砖,2022最新HCIA-Datacom题库H12-811首发分享
  10. H3C DIS命令记录