【BZOJ2320】最多重复子串 Description 一个字符串P的重复数定义为最大的整数R,使得P可以分为R段连续且相同的子串。比方说,“ababab”的重复数为3,“ababa”的重复数为1。 Your Task 对于给定的串S,找出S的一个子串K使得K的重复数最大。 一个字符串P的重复数定 ...
分类:
其他好文 时间:
2017-09-24 10:42:35
阅读次数:
175
前些天在研究字符串,这里记录一些小技巧以便复习。 1.KMP求最短重复子串 令leng=len-next[len] 若要求完全覆盖,则(len%leng==0)?leng:len; 若不要求完全覆盖,则输出leng 2.Exkmp如何构造extend[]数组 可以发现问题最终转化为求t[i]后缀与t ...
分类:
其他好文 时间:
2017-09-23 17:26:16
阅读次数:
213
对于重复次数,如果确定了重复子串的长度len,那重复次数k=lcp(start,start+len)/len+1。而暴力枚举start和len的复杂度是O(n^2),不能接受。而有一个规律,若我们只枚举len的整数倍作为起始,如果将它向前移动小于len位可以构成重复次数更长的串,那么那个位置p=st ...
分类:
编程语言 时间:
2017-09-21 21:11:17
阅读次数:
191
题目大意: 给你一个数列,我们数列中两个串是相似的当且仅当这两个串的长度至少为5、两个串差分后形成的数列一样且不相交,求最长的相似串的长度。 思路: 后缀自动机求最长不相交重复子串。 首先将差分后的数列构造SAM,然后按照拓扑序DP,得到每个状态right集合的最大值t与最小值s,表示当前状态对应的 ...
分类:
其他好文 时间:
2017-09-14 21:42:35
阅读次数:
169
这是我遇到的一道校招题目: 给定一字符串只包含数字,请写一个算法,找出该字符串中的最长不重复子串(不重复是指子串中每一元素不同于子串中其他元素) 如: “120135435”最长不重复子串为 "201354" 要求用java或者c来写,我用了java。 /** * 思想: * 从头开始截取字符串,只 ...
分类:
其他好文 时间:
2017-09-10 19:50:45
阅读次数:
143
给定一个字符串str, 返回str的最长无重复字符子串长度 例如 str="abcd' 返回4 str=“aabcb” 最长“abc” 返回3 解决本题的思路非常非常有趣,这种思路必须要学会: 本题目可以做到 时间复杂度O(N) str长度N 空间复杂度O(M) M是字符编码 根据字符编码 大小 申 ...
分类:
其他好文 时间:
2017-08-22 11:40:25
阅读次数:
147
题意:不可重叠最长重复子串 有N(1 <= N <=20000)个音符的序列来表示一首乐曲,每个音符都是1..88范围内的整数,现在要找一个重复的主题。“主题”是整个音符序列的一个子串,它需要满足如下条件: 1.长度至少为5个音符。 2.在乐曲中重复出现。(可能经过转调,“转调”的意思是主题序列中每 ...
分类:
编程语言 时间:
2017-08-12 17:06:40
阅读次数:
156
题意:一道论文题,给定一串数组,求最长的重复子串长度,其中这两个子串不重叠,这两个子串可以相差同一个数字。 分析:后一个减前一个数字,那么对于上面说的,可以相差同一个数字就变成了相同数字。问题就变成了,求一个串里面的最长不可重复的子串长度。 但是不再是height数组里面的最大值了,二分答案,将he ...
分类:
编程语言 时间:
2017-07-22 16:56:01
阅读次数:
190
题意 : 如果一个字符串包含两个相邻的重复子串,则称它是“容易的串”,其他串称为“困难的 串”。例如,BB、ABCDACABCAB、ABCDABCD都是容易的串,而D、DC、ABDAB、 CBABCBA都是困难的串。程序从输入中读取多行数据,每行包括两个整数n和L(即按此顺序给出),其中n > 0, ...
分类:
其他好文 时间:
2017-07-13 17:42:05
阅读次数:
184
题意 给定若干组由数字构成的字符串,求所有不重复子串的和(把他们看成十进制),答案mod(1e9+7) 题解: 类似后缀数组的做法,把字符串之间用':'连接,这里用':'是因为':'的ascii码恰好是9的下一个 然后建立后缀自动机。 之后把其实只要把其中的所有':'边删去,就可以进行转移了 如果x ...
分类:
编程语言 时间:
2017-07-01 01:05:48
阅读次数:
240