后缀数组
文章平均质量分 78
sdj222555
这个作者很懒,什么都没留下…
展开
-
后缀数组习题
原文:http://hi.baidu.com/lewutian/blog/item/4d098138d29c34f9b311c725.html单独把它列出来是因为这个东西真的很神奇~~~后缀数组经典思想:多串合并+二分答案+最优性--->可行性例 1 :最长公共前缀给定一个字符串,询问某两个后缀的最长公共前缀。 // 直接套用,ans=min( heig原创 2012-08-19 13:23:09 · 3272 阅读 · 0 评论 -
后缀数组 不重叠最长重复子串 POJ 1743
题意:有N个音符的序列来表示一首乐曲,每个音符都是1..88范围内的整数,现在要找一个重复的主题。“主题”是整个音符序列的一个子串,它需要满足如下条件: 1.长度至少为5个音符。 2.在乐曲中重复出现。(可能经过转调,“转调”的意思是主题序列中每个音符都被加上或减去了同一个整数值) 3.重复出现的同一主题不能有公共部分。首先看到转调,这很重要,一个序列中的数加上同原创 2012-08-20 14:39:20 · 803 阅读 · 0 评论 -
后缀数组之最长公共子串 poj 2774
用后缀数组求两个串的最长公共子串的长度详见罗穗骞的论文#include #include #include #include #include #include #define MAXN 1000005using namespace std;int r[MAXN];int wa[MAXN], wb[MAXN], wv[MAXN], tmp[MAXN];int sa[MA原创 2012-08-20 12:51:32 · 1056 阅读 · 1 评论 -
POJ 3693 重复次数最多的连续重复子串 后缀数组
题目大意就是求重复次数最多的连续重复子串。例如abababc 答案就是ababab 因为ab连续出现的次数最多并且题目还要求输出字典序最小的比如abababcdcdcd ababab和cdcdcd都符合要求但是ababab字典序小具体做法参见罗穗骞的论文穷举子串的长度L,然后求长度为L的子串最多出现几次首先连续出现一次是肯定的,所以只考虑出现两次及以上的情况原创 2012-09-17 17:38:34 · 1349 阅读 · 0 评论 -
POJ 3261 可重叠的出现K次的最长重复子串
给定一个字符串,求至少出现K次的最长重复子串,这k个子串可以重叠。所谓出现K次就是在任意K个地方出现了这个子串,并不要求这K个是连续的。那么 根据罗大神的论文,用后缀数组解之二分答案,然后用height数组判定是否至少出现了K个这种子串#include #include #include #include #include #include #inc原创 2012-09-25 15:31:58 · 1844 阅读 · 0 评论 -
后缀数组练习题若干
POJ 1743 不可重叠最长重复子串二分答案。 即子串的长度,假设为k时。利用height数组,将排序后的后缀分为若干组。每组内的height值都不小于k。然后只需查看组内是否有满足要求的两个不会产生重叠的子串即可。#include #include #include #include #include #include #include #defin原创 2013-10-13 21:00:12 · 3664 阅读 · 0 评论