
后缀数组
MilkCoder
这个作者很懒,什么都没留下…
展开
-
poj1743-后缀数组(不重叠最长重复子串)
给你一串数字,求它们最长的重复(公差相同)子序列,且两个子序列不相交 大致思路:后缀数组+二分答案 问题: 1、将公差相同的子串转化为重复子串问题 比如说原序列为:a1 a2 a3 a4 a5 a6 a7 如果子串a3a4,a6a7是公差相同的子串,则a7-a4==a6-a3 移项:a7-a6=a4-a3 相邻的差相同? 于是想到原序列的差分序列: d1 d2 d3 d4 d5 d6 d7(d1=...原创 2019-08-02 17:52:22 · 471 阅读 · 0 评论 -
poj3693--出现次数最多的连续重复子串(后缀数组)
先穷举长度L,然后求长度为L的子串最多能连续出现几次。首先连续出现1次是肯定可以的,所以这里只考虑至少2次的情况。假设在原字符串中连续出现2次,记这个子字符串为S,那么S肯定包括了字符r[0], r[L], r[L2],r[L3], ……中的某相邻的两个。所以只须看字符r[Li]和r[L(i+1)]往前和 往后各能匹配到多远,记这个总长度为K,那么这里连续出现了K/L+1次。最后看最大值是多少。如...原创 2019-08-05 11:20:54 · 361 阅读 · 0 评论