后缀数组
正汰
梦好美啊!好想时间静止,让我去看看这个世界!但时间却依旧悄悄流逝,而自己却什么也没有做,宛如梦初...
展开
-
[JSOI2007]字符加密Cipher
后缀数组的利用 题目太长不放了 题目#include<cmath>#include<cstdio>#include<cstdlib>#include<cstring>#include<iostream>#include<algorithm>using namespace std;char a[210000];int wr[210000];int rank[210000];in原创 2016-11-30 12:53:49 · 538 阅读 · 0 评论 -
[poj1743]不可重叠最长重复子串
懒死了。 http://poj.org/problem?id=1743 题目鲁鲁拉。 (1)不可重叠最长重复子串(pku1743) 给定一个字符串,求最长重复子串,这两个子串不能重叠。 算法分析: 先二分答案,把题目变成判定性问题:判断是否存在两个长度为k的子串是相同的,且不重叠。解决这个问题的关键还是利用height数组。把排序后的后缀分成若干组,其中每组的后缀之间的height值都不原创 2016-12-11 15:09:18 · 2363 阅读 · 2 评论 -
[ural1297]最长回文子串
我也没有题目啦 就是说给一个字符串求出字串中式回文的最长的字串。。好乱啦。 给定一个字符串,求最长回文子串。 算法分析: 穷举每一位,然后计算以这个字符为中心的最长回文子串。注意这里要分两种情况,一是回文子串的长度为奇数,二是长度为偶数。两种情况都可以转化为求一个后缀和一个反过来写的后缀的最长公共前缀。具体的做法是:将整个字符串反过来写在原字符串后面,中间用一个特殊的字符隔开。这样原创 2016-12-08 13:41:52 · 775 阅读 · 0 评论 -
[POJ2774]Long Long Message
Description The little cat is majoring in physics in the capital of Byterland. A piece of sad news comes to him these days: his mother is getting ill. Being worried about spending so much on railway原创 2016-12-14 12:59:49 · 563 阅读 · 0 评论 -
[pku3261]可重叠的k次最长重复子串
还是很懒,今天要贴很多代码就允许我懒一些吧。 给定一个字符串,求至少出现k次的最长重复子串,这k个子串可重叠。 算法分析: 这题的做法和上一题差不多,也是先二分答案,然后将后缀分成若干组。不同的是,这里要判断的是有没有一个组的后缀个数不小于k。如果有,那么存在k个相同的子串满足条件,否则不存在。这个做法的时间复杂度为O(nlogn)。#include<cmath>#include<cst原创 2016-12-14 13:11:35 · 1075 阅读 · 0 评论 -
[spoj694]不相同的子串的个数
给定一个字符串,求不相同的子串的个数。 算法分析: 每个子串一定是某个后缀的前缀,那么原问题等价于求所有后缀之间的不相同的前缀的个数。如果所有的后缀按照suffix(sa[1]), suffix(sa[2]),suffix(sa[3]),……,suffix(sa[n])的顺序计算,不难发现,对于每一次新加进来的后缀suffix(sa[k]),它将产生n-sa[k]+1个新的前缀。但是其中有he原创 2016-12-14 13:12:53 · 738 阅读 · 0 评论 -
[pku1743]不可重叠最长重复子串
题目还是自己找吧,我有点懒啦。 今天我写一下后缀数组的博客,php的更新鲜停一天。 给定一个字符串,求最长重复子串,这两个子串不能重叠。 算法分析: 先二分答案,把题目变成判定性问题:判断是否存在两个长度为k的子串是相同的,且不重叠。解决这个问题的关键还是利用height数组。把排序后的后缀分成若干组,其中每组的后缀之间的height值都不小于k。例如,字符串为“aabaaaab”,当k=原创 2016-12-14 13:07:04 · 934 阅读 · 0 评论