后缀数组的一些问题

1:求重复次数不小于K 的最长不重叠子串;

这种题的思路解法是利用height数组的来分组,另外在增加一个queue数组来对每个分组里面的数组进行排序,在加以判断,另外需要看下N的范围大小,如果n》=10000话最好还是用DC3构造法,如果不是的话可以用倍增法,例题见hdu2890

2:求有多少子串重复次数大于2,且不重叠,还是一样利用height数组来分组在每次分组完毕的时候判断一下最大值和最小值的位子。另外还要注意一个小细节。那就是在ffor循环结束后来,也要在判断一下,例题见HDU3518

3:连续重复子串,指一个字符串能够被一个子串连续重复得到。这道题我不建议用后缀数组来写,代码太长,可以直接用KMP中的next数组来求值。例题POJ2406

4求一个字符串中重复次数最多的子串,这道题要利用好一个性质,先随意给一个字符串,例如ababc我们可以很明显的看出ab是重复次数最多的子串,那么现在可以关注到abab这个结构。详情请见http://www.acmerblog.com/hdu-2459-maximum-repetition-substring-3923.html,例题为HDU2459


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值