数据结构-后缀数组
文章平均质量分 78
lab104_yifan
这个作者很懒,什么都没留下…
展开
-
UVA 12206 - Stammering Aliens(后缀数组)
UVA 12206 - Stammering Aliens题目链接题意:给定一个序列,求出出现次数大于m,长度最长的子串的最大下标思路:后缀数组,搞出height数组后,利用二分去查找即可这题之前还写过hash的写法也能过,不过写后缀数组的时候,犯了一个傻逼错误,把none输出成node还一直找不到。。。这是刷题来第二次碰到这种逗比错误了,还是得注意。。代码原创 2014-08-18 22:49:22 · 1588 阅读 · 0 评论 -
UVA 12338 - Anti-Rhyme Pairs(后缀数组+RMQ)
UVA 12338 - Anti-Rhyme Pairs题目链接题意:给定一些字符串,每次询问求出两个字符串的最长公共前缀的长度思路:把字符串排序,就能求出height和rank数组,然后利用RMQ查询即可代码:#include #include #include #include #include using namespace std;co原创 2014-08-20 01:00:23 · 1292 阅读 · 0 评论 -
UVA 11855 - Buzzwords(后缀数组)
UVA 11855 - Buzzwords题目链接题意:给定一个文本,求出长度为1, 2, 3, 4, 5....的字符串最大出现次数,一直找到出现次数不大于1为止思路:后缀数组,把空格去掉得到一个字符串,构造height数组,然后就是后缀数组的简单应用了,找连续一段最长的段并且都大于当前正在查找的长度代码:#include #include #incl原创 2014-08-22 15:27:23 · 1010 阅读 · 0 评论 -
POJ 3693 Maximum repetition substring(后缀数组神题)
POJ 3693 Maximum repetition substring题目链接题意:给定一个字符串,求出其子串中,重复次数最多的串,如果有相同的,输出字典序最小的思路:枚举长度l,把字符串按l分段,这样对于长度为l的字符串,肯定会包含一个分段位置,这样一来就可以在每个分段位置,往后做一次lcp,求出最大匹配长度,然后如果匹配长度有剩余,看剩余多少,就往前多少位置再做一次原创 2014-08-23 18:51:02 · 1159 阅读 · 0 评论 -
UVA 10829 - L-Gap Substrings(后缀数组)
UVA 10829 - L-Gap Substrings题目链接题意:一个字符串如果形如UGU,的形式,G的长度为L,那么称这个字符串为L串,给定一个字符串,问这个字符串子串为g串的个数思路:做这题前先做了POJ3693,有一个思想就是枚举长度分段,这样的话对于一个U长度为l的而言,只要在当前位置和当前位置之后(l + g)的位置分别向前向后找lcp,两个lcp加起来的长度原创 2014-08-23 19:50:45 · 2063 阅读 · 0 评论 -
UVA 11107 - Life Forms(后缀数组)
UVA 11107 - Life Forms题目链接题意:给定一些字符串,求最长并且在所有字符串的连续子串中出现超过一半次数的字符串,输出这些字符串思路:把这些字符串接起来,拼接部分用一个不会出现的不重复的字符,然后求这个长串的后缀数组,利用height数组去进行二分求解,二分的判断里面如果有一个连续height段超过了一半次数,那么就是可行的,如果所有连续段都没有出现超过原创 2014-08-18 16:34:49 · 1282 阅读 · 1 评论 -
HDU 5008 Boring String Problem(西安网络赛B题)
HDU 5008 Boring String Problem题目链接思路:构造后缀数组,利用height的数组能预处理出每个字典序开始的前缀和有多少个(其实就是为了去除重复串),然后每次二分查找相应位置,然后在往前往后找一下sa[i]最小的代码:#include #include #include using namespace std;typedef l原创 2014-09-15 20:34:05 · 1301 阅读 · 0 评论 -
UVA 10526 - Intellectual Property (后缀数组)
UVA 10526 - Intellectual Property题目链接题意:给定两个问题,要求找出第二个文本抄袭第一个文本的所有位置和长度,输出前k个,按长度从大到小先排,长度一样的按位置从小到大思路:后缀数组,把两个文本拼接起来,记录下拼接位置为tdp,这样如果sa[i] = tdp就是后面的文本开头,拼接起来的求出height数组,利用该数组的性质,从前往后扫一遍,原创 2014-08-23 10:26:02 · 1522 阅读 · 0 评论 -
FZU 2082 过路费(树链剖分)
FZU 2082 过路费题目链接树链抛分修改边的模板题代码:#include #include #include using namespace std;typedef long long ll;const int N = 50005;int dep[N], id[N], sz[N], top[N], son[N], fa[N], idx;int原创 2014-09-30 16:49:10 · 945 阅读 · 0 评论