spoj改版后好囧……

不相同的子串的个数(spoj694,spoj705)
给定一个字符串,求不相同的子串的个数。
算法分析:
每个子串一定是某个后缀的前缀,那么原问题等价于求所有后缀之间的不相
同的前缀的个数。如果所有的后缀按照 suffix(sa[1]), suffix(sa[2]),
suffix(sa[3]), …… ,suffix(sa[n])的顺序计算,不难发现,对于每一次新加
进来的后缀 suffix(sa[k]),它将产生 n-sa[k]+1 个新的前缀。但是其中有
height[k]个是和前面的字符串的前缀是相同的。所以 suffix(sa[k])将“贡献”
出 n-sa[k]+1- height[k]个不同的子串。累加后便是原问题的答案。这个做法
的时间复杂度为 O(n)。

相关文章:

  • 2021-09-13
  • 2021-07-20
  • 2022-12-23
  • 2021-07-01
  • 2022-12-23
  • 2022-01-05
  • 2022-02-10
  • 2021-09-11
猜你喜欢
  • 2021-07-06
  • 2021-08-11
  • 2022-12-23
  • 2021-07-16
  • 2022-12-23
  • 2022-02-03
相关资源
相似解决方案