后缀数组
霜刃未曾试
这个作者很懒,什么都没留下…
展开
-
POJ 1743 Musical Theme 后缀数组
题目:http://poj.org/problem?id=1743 题意:给定一个数组,求不重叠的最长相同变化的长度 思路:后缀数组第一题。看后缀数组看了一天,整个人都懵逼了,找了一道基础的后缀数组题切一下。。。这道题是利用height数组的性质,height数组代表排名为i和i-1的后缀子串的最长公共前缀长度,公共前缀即是相同的变化。二分枚举答案,判断height数组大于等于枚举值的两起点间原创 2016-08-01 09:19:07 · 562 阅读 · 0 评论 -
hdu1403 && poj 2774 最长公共子串 后缀数组
题目:http://poj.org/problem?id=2774 http://acm.hdu.edu.cn/showproblem.php?pid=1403题意:给定两个长度均不超过100000100000的字符串,求两个字符串的最长公共子串思路:后缀数组的简单应用。把两个字符串拼接起来,中间用一个特殊字符隔开,求出后缀数组的height数组后,找出起点分别在特殊字符的两侧的两个大小相邻后缀,原创 2017-09-19 20:54:16 · 418 阅读 · 0 评论 -
poj3450 Corporate Identity kmp || 后缀数组
题目:http://poj.org/problem?id=3450题意:给定n个字符串,求这n个字符串的最长公共子串思路:比较优的解法是枚举答案,然后用kmp或者strstr函数去判定枚举的子串是否是剩余所有字符串的子串。用后缀数组也可以,但是比较慢 kmp:#include <iostream> #include <cstdio> #include <cstring> #include <alg原创 2017-09-20 12:58:18 · 429 阅读 · 0 评论 -
51Nod 1292 字符串中的最大值 V2 后缀数组 + 单调栈
题目:https://vjudge.net/problem/51Nod-1292题意:有一个字符串T。字符串S的F函数值可以如下计算:F(S) = L * S在T中出现的次数(L为字符串S的长度)。求所有T的子串S中,函数F(S)的最大值。 Input 输入字符串T, (1 <= L <= 1000000, L为T的长度),T中的所有字符均为小写英文字母。 Output 输出T的所有子串中长原创 2017-09-20 15:17:41 · 372 阅读 · 0 评论 -
POJ 3415 Common Substrings 后缀数组
题目:http://poj.org/problem?id=3415题意:给定两个字符串,求这两个字符串中长度大于等于k的公共子串的数量思路:不得不说,这题我不会,看的别人的,心累。。。看这篇http://www.cnblogs.com/luxiaoming/p/5270984.html#include <iostream> #include <cstdio> #include <cstring> #原创 2017-09-20 23:00:56 · 430 阅读 · 0 评论 -
hdu6194 string string string 后缀数组 + RMQ
题目:http://acm.hdu.edu.cn/showproblem.php?pid=6194题意:给定一个字符串,求恰好出现k次的子串有多少个思路:后缀数组处理出height数组,然后按顺序每次取一个长度为k的区间,这个区间的公共前缀设为L,即这个区间内的height数组的最小值,可以RMQ实现O(1)查询,那么意味着有L个子串出现了恰好k次,但是有可能这L个子串中有一些出现次数是大于k的,要原创 2017-09-22 16:44:46 · 273 阅读 · 0 评论