后缀数组
Marcus-Bao
这个作者很懒,什么都没留下…
展开
-
后缀数组
看了几天的后缀数组了,对于后缀数组的作用总算是理解了一些,就是对它的代码实现真的感觉到很难理解.其实我个人觉得,后缀数组,最最最重要的是去深刻的理解和体会rank[] sa[] height[] 这三个数组的作用和思想。在这里分享几篇我觉得很不错的博客. 我队友这个就不错这篇博客我觉得是讲的比较详细的这个也很不错,就是其中有一点错误转载 2017-07-23 16:06:06 · 593 阅读 · 0 评论 -
UOJ #35. 后缀排序 后缀数组模板题
题目链接思路:就是裸的模板,考虑到求sa,和height数组.#include #include #include #include using namespace std; const int maxn = 1e5+5; int t1[maxn], t2[maxn], c[maxn]; //c 基数排序辅助数组// int原创 2017-07-23 16:09:23 · 425 阅读 · 0 评论 -
HihoCoder - 1403 最长可重叠子串问题 二分+暴力
题目链接题意:小Hi想知道一段旋律中出现次数至少为K次的旋律最长是多少? 思路:这个题目应该是后缀数组的几个经典之一.首先要求重叠的最长,那么我们可以知道我们对所有的后缀排个序的话,字典序越接近的他的前缀越长,这是很显然的.也就是我们的height数组.接着我们就可以想到求n个后缀的最长公共前缀: ①首先将N个字符串按照字典原创 2017-07-29 11:55:55 · 664 阅读 · 0 评论 -
HDU - 5442 Favorite Donut 最大表示法+KMP || 后缀数组
点击打开链接题意:有一个由小写字母组成的字符串(长度为n),首尾相接,求顺时针转和逆时针转的情况下,长度为n的最大字典序的字符串的首位的位置。如果顺时针和逆时针求得的字符串相同,则选择开始位置较前的,如果开始位置也相同,则选择顺时针的。如abcd,那么顺时针可以是abcd,bcda,cdab,dabc.逆时针可以是adcb,dcba,cbad,badc.原创 2017-09-23 00:29:18 · 403 阅读 · 0 评论 -
字符串问题模板 长期更新
后缀数组#include #include #include #include using namespace std; const int maxn = 1e5+5; int t1[maxn], t2[maxn], c[maxn]; //c 基数排序辅助数组// int ra[maxn], height[maxn]; //rank数组,高度数组 int原创 2017-07-23 16:13:06 · 570 阅读 · 0 评论