Long Long Message POJ - 2774 (后缀数组求最长公共子串)

题目 https://cn.vjudge.net/problem/POJ-2774 题意 给你两串字符,要你找出在这两串字符中都出现过的最长子串 思路 先用个分隔符将两个字符串连接起来,再用后缀数组求出height数组的值,找出一个height值最大并且i与i-1的sa值分别在两串字符中就...

2019-02-17 10:11:17

阅读数 67

评论数 0

Power Strings POJ - 2406 (KMP求最小循环节)

题目 https://cn.vjudge.net/problem/POJ-2406 题意 用next数组求出整个数组的最大前缀,如果整个串是用循环节组成的,那么 n - next[n] 也就是最小循环节,验证最小循环节会被n整出。 思路 利用KMP算法,求字符串的特征向量next,若len...

2019-02-17 10:05:36

阅读数 48

评论数 0

Milk Patterns POJ - 3261 (后缀数组求可重叠的最长重复子串)

题目 https://cn.vjudge.net/problem/POJ-3261 题意:   求可重叠的最长重复子串,但有一个限制条件。。要至少重复k次 思路 只需要求 height 数组 里的最大值即可。首先求最长重复子串,等价于求两个后缀的最长公共前缀的最 大值。因为任意两个后缀的最...

2019-02-17 10:03:04

阅读数 64

评论数 0

Musical Theme POJ - 1743 (后缀数组求不可重叠最长重复子串)

题目 https://cn.vjudge.net/problem/POJ-1743  题意 给定一个字符串,求最长重复子串,这两个子串不能重叠。 思路 这题比上一题稍复杂一点。先二分答案,把题目变成判定性问题:判断是否 存在两个长度为 k 的子串是相同的,且不重叠。解决这个问题的关键还是利用 ...

2019-02-17 09:58:49

阅读数 71

评论数 0

后缀数组模板

typedef long long ll; const int maxn = 200010; int cntA[maxn],cntB[maxn],sa[maxn],tsa[maxn],A[maxn],B[maxn],height[maxn]; int Rank[maxn]; ll n; char...

2019-02-16 10:07:11

阅读数 33

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭