POJ1743 Musical Theme 要找长度$\ge 5$且出现次数$\ge 2$并且第一次出现和最后一次出现不重叠的最长子串。 题目条件中,如果对于两个串,在一个串的每个数上都加上相同的数之后可以得到另一个串,那么这个两个串可以被是相同的。 首先我们先得到差分数组,然后要求的就是差分数组中 ...
分类:
其他好文 时间:
2020-04-14 20:32:58
阅读次数:
72
有N(1<=N<=20000)个音符的序列来表示一首乐曲,每个音符都是1..88范围内的整数,现在要找一个重复的子串,它需要满足如下条件:1.长度至少为5个音符。 2.在乐曲中重复出现(就是出现过至少两次)。(可能经过转调,“转调”的意思是主题序列中每个音符都被加上或减去了同一个整数值) 3.重复出 ...
分类:
其他好文 时间:
2020-02-19 19:09:31
阅读次数:
63
Musical Theme 题目大意 给出一串数字(每个数字范围1...88),问是否存在两个长度相等的不重叠子串,两串每两个同位数字的差值为定制。长度小于5则输出0,否则输出最大长度。 题解 巧妙而常见的转化:差分后差分串的两个长度为l的子串相等,则原串对应的两个长度为l+1的子串相等。 而后变成 ...
分类:
其他好文 时间:
2019-07-31 12:51:51
阅读次数:
51
2009那篇论文里介绍的做法 "这里面" 有下载链接 这个题是要转成差分序列再做的 导致我WA了一发的地方 写成 =了(论文里说的距离不小于k 转成差分序列好像就要写成 ) cpp include include include using namespace std; using namespac ...
分类:
其他好文 时间:
2019-03-26 22:37:31
阅读次数:
184
POJ1743 Musical Theme 题目描述 [传送门][1] 题目分析 分析出题目是让我们求两个最长的重复的不相交的子串。 考虑到两个后缀有相同的前缀就会有那么长的重复的子串,使用后缀数组。 变调什么的差分一下还是一样做。 二分答案,同时记录后缀出现位置,题目保证不相交。注意最后二分出的答 ...
分类:
其他好文 时间:
2019-03-01 09:20:17
阅读次数:
181
Description 题意:有 N(1 =x$的连续区间内, 且首字母位置相距$ x$ 最后的原数组重复子串的长度为 $ans + 1$ Code cpp include include include define rd read() using namespace std; const int ...
分类:
编程语言 时间:
2018-12-04 15:40:07
阅读次数:
199
#include #define LL long long #define fi first #define se second #define mk make_pair #define pii pair #define y1 skldjfskldjg #define y2 skldfjsklejg... ...
分类:
编程语言 时间:
2018-07-20 21:42:48
阅读次数:
179
题意:给一个数字串,求不可重叠的相似子串,两个子串$a,b$相似的定义是$a_i-b_i$都相等 昨晚二爷讲课,去膜拜一发,学了一下不知道学了多少次也没懂的后缀数组 后缀数组能将字符串$S$的所有后缀$S_{i\cdots n}=\text{Suffix}(i)$排序,$sa_i$表示排第$i$名的 ...
分类:
其他好文 时间:
2018-03-03 19:27:33
阅读次数:
192
http://poj.org/problem?id=1743 给一段数,求最大相似子串长度,如果没有输出0。 相似子串定义: 1.两个不重叠的子串,其中一个是另一个加/减一个数得来的。 2.长度>=5 二分答案,然后想如何表示相似。 实际上我们对原数进行差分然后找相同不重叠子串即可,答案为长度+1。 ...
分类:
其他好文 时间:
2018-02-24 11:49:26
阅读次数:
169
http://poj.org/problem?id=3261 给一个序列,求至少出现 k 次的最长重复子串,这 k 个子串可以重叠。 论文题+傻逼题。 上一道题(POJ1743)会做即可。 还是二分长度,按照高度数组分组做,统计每个组有多少个后缀即可。 +++++++++++++++++++++++ ...
分类:
其他好文 时间:
2018-02-24 11:46:16
阅读次数:
108