后缀数组
文章平均质量分 82
立華奏
这个作者很懒,什么都没留下…
展开
-
hdoj 5008 后缀数组+RMQ+二分
hdoj 5008 题意:给一个字符串,问该字符串第k个子串的最小字典序位置。其中k需要L xor R xor V求得,L R是前一个询问的子串位置,说白了就是强制在线。 思路:先是后缀数组处理出子串去重后的编号,然后先求得第k个子串的位置i,因为这个位置只是后缀数组中第一次出现的位置,而不一定是原字符串中最左边的位置,所以真正的位置可能在i的左边或右边。如果遍历去找肯定会超时,但是我们可以二原创 2015-08-05 19:52:40 · 566 阅读 · 0 评论 -
poj 2774 后缀数组
后缀数组是字符串处理神器,可以解决多类字符串问题,这篇博客写的不错,转载一下:http://www.cnblogs.com/Lyush/archive/2013/08/02/3233573.html 简要来说,sa[i]是后缀排名第i位的起始位置,rank[i]是以第i位为起始位置的后缀的排名,正好和sa[i]相逆,也就是sa[rank[i]]=i,而height[i]存的是后缀sa[i]与sa原创 2015-08-04 18:51:39 · 312 阅读 · 0 评论 -
hdoj 5030 后缀数组+二分
hdoj 5030 题意:给一个字符串,最多分割k次,求分割后最大的子串。 思路: 首先通过len - sa[i] - height[i]对子串去重(len是字符串长度),然后枚举最大的子串,看这个子串能否在分割k次以内实现。 第k个子串: t = lower_bound(sum + 1, sum + 1 + len, k) - sum;// 即子串所属后缀的起始位置, sum[i]是到原创 2015-08-05 19:37:25 · 375 阅读 · 0 评论