当前位置: 首页 > 后缀数组 后缀数组-后缀数组简介-关于后缀数组的教程文章在线阅读

后缀数组-后缀数组简介-后缀数组资料

后缀数组
  • [luoguP2336] [SCOI2012]喵星球上的点名(后缀数组 + 暴力)传送门原本的想法是把所有的串不管是名字还是询问都连起来,记录一下询问串在sa数组中的位置对于每个询问可以在sa数组中二分出左右边界,第一问用莫队,第二问差分乱搞。结果发现

  • [luoguP2463] [SDOI2008]Sandy的卡片(后缀数组 + st表)传送门很容易想到,题目中的相同是指差分数组相同。那么可以把差分数组连起来,中间加上一个没有出现过的且字典序小的数双指针移动,用st表维护height数组中的最小值。当然用单调

  • [POJ1226]Substrings(后缀数组)传送门

    给定 n 个字符串,求出现或反转后出现在每个字符串中的最长子串。
    算法分析:
    这题不同的地方在于要判断是否在反转后的字符串中出现。其实这并没有加大题目的难度。

  • 后缀数组模板题

    蒙蔽,先背着,说不定哪天就开窍了。

    半年后,真的自己开不了窍,还是得有人讲才能明白些。
    于是我先记录一下我对于后缀数组的理解吧。
    算了还是写在代码注释中吧。。。

  • [POJ3294]Life Forms(后缀数组)传送门

    统计大于一半的串中都出现过的子串,有多个按照字典序输出

    二分子串长度 k,用 k 将height 数组分组,接下来直接判断就 ok。

    有个小细节,平常统计所有串中都出现的最长

  • [POJ3974]Palindrome(后缀数组 || manacher)传送门

    求一个串的最长回文子串的长度

    1.后缀数组

    把这个串反转后接到原串的后面,中间连一个没有出现过的字符。
    然后求这个新字符串的某两个后缀的公共前缀的最大值即可

  • [TyvjP1515] 子串统计 [luoguP2408] 不同子串个数(后缀数组)Tyvj传送门
    luogu传送门

    经典题
    统计一个字符串中不同子串的个数
    一个字符串中的所有子串就是所有后缀的前缀
    先求出后缀数组,求出后缀数组中相邻两后缀的 lcp
    那么按照后

  • [POJ2406]Power Strings传送门

    给定一个字符串 L,已知这个字符串是由某个字符串 S 重复 R 次而得到的,求 R 的最大值。

    1.后缀数组
    做法比较简单,穷举字符串 S 的长度 k,然后判断是否满足。判断的时

  • [HDU2328]Corporate Identity(后缀数组)传送门

    求 n 个串的字典序最小的最长公共子串。
    和 2 个串的处理方法差不多。
    把 n 个串拼接在一起,中间连上一个没有出现过的字符防止匹配过界。
    求出 height 数组后二分

  • [luoguP2870] [USACO07DEC]最佳牛线,黄金Best Cow Line, Gold(后缀数组)传送门

    数据小的话贪心就行。

    可以把这个串翻转再接到后面,再求后缀数组,求出 rank 数组就很简单了。

    ——代码


    1 #include <cstdio>
    2 #include <iostream>
    3 #defi

  • [HDU3518]Boring counting(后缀数组)传送门

    求出现超过1次的不重叠子串的个数

    根据论文中的方法。
    枚举子串的长度 k。
    用 k 给 height 数组分组,每一组求解,看看当前组的位置最靠后的后缀和位置最靠前的后缀

  • [HDU1403]Longest Common Substring(后缀数组)传送门

    求两个串的公共子串(注意,这个公共子串是连续的一段)

    把两个串连在一起,中间再加上一个原字符串中不存在的字符,避免过度匹配。
    求一遍height,再从height中找满足条件的

  • [BZOJ1031][JSOI2007]字符加密Cipher(后缀数组)传送门

    算是个模板。
    题目说循环,那就再复制一串拼接上。
    然后求后缀数组,再搞就可以。

    虽然是求后缀,会在后面多一些字符串,然而题目中说的是循环一圈,但是没有影响。

    ——


  • 英特尔与 Vertiv 合作开发液冷 AI 处理器
  • 英特尔第五代 Xeon CPU 来了:详细信息和行业反应
  • 由于云计算放缓引发扩张担忧,甲骨文股价暴跌
  • Web开发状况报告详细介绍可组合架构的优点
  • 如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳
  • 美光在数据中心需求增长后给出了强有力的预测
  • 2027服务器市场价值将接近1960亿美元
  • 生成式人工智能的下一步是什么?
  • 分享在外部存储上安装Ubuntu的5种方法技巧
  • 全球数据中心发展的关键考虑因素
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器

    英特尔第五代 Xeon CPU 来了:详细信息和行业反应

    由于云计算放缓引发扩张担忧,甲骨文股价暴跌

    Web开发状况报告详细介绍可组合架构的优点

    如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳

    美光在数据中心需求增长后给出了强有力的预测

    2027服务器市场价值将接近1960亿美元

    生成式人工智能的下一步是什么?

    分享在外部存储上安装Ubuntu的5种方法技巧

    全球数据中心发展的关键考虑因素