题目链接:uva 12206 - Stammering Aliens
题目大意:给出一个字符串,找出至少出现m次的最长子串。
解题思路:哈希算法,将每个后缀数组建立一个哈希值,每次二分长度判断,每次判断时将哈希值排序,计数即可。
#include
#include
#include
using namespace std;
typedef unsigned long lon...
分类:
其他好文 时间:
2014-09-01 22:47:33
阅读次数:
279
题目poj1226(可暴力,可后缀数组)//题意:给定n个串,求一个最大子串长度,//使得它或者它的逆向串在每个串中出现。 //思路:先求出最短的串sho[],然后枚举答案长度ans(len~1)。//于是sho[]就被分成了len-ans+1个子串pos[],//再分别求出这些字串的反串inv[]...
分类:
其他好文 时间:
2014-09-01 15:24:43
阅读次数:
183
题目大意:
求出最多能记住的单词的权值和,要求最大。
记住的规则就是上一个单词是这个单词的子串。
思路分析:
首先得声明这题是数据水了才能用sa做的。
sa的复杂度最多可以达到 Orz(sumlen * sumlen) ...
所以我们sa处理的就是这个串是否是下一个串的子串,如果是就转移方程。
dp[i] = max (dp[i] , dp[j] + val[i])...
...
分类:
其他好文 时间:
2014-08-31 00:33:40
阅读次数:
256
后缀数组的实现有很多细节:1.da函数中的n 指的是 从 0--n-1 为字符,对这n个后缀排序2.r[n-1]为在原字符串后面加的比前面任何一个字符都小的辅助字符,所以原来的字符串应该是r[0]---r[n-2]3.sa[0]=n-1为增添的辅助字符,所以sa转rank 的时候 i=1 to n-...
分类:
其他好文 时间:
2014-08-29 01:16:06
阅读次数:
207
题意:有F个单词,1 h[v]的子串所在的单词形成的并查集中,得到的并查集中单词一定有长度>=h[v]公共字串,这样的并查集实际就是一个合法的单词集合,可以利用二进制表示,每次得到新的集合则将二进制表示加入到统计集合的set中,最后结果就是set的大小。AC代码其实是比赛时写的,当时多个单词部分不....
分类:
其他好文 时间:
2014-08-28 00:50:38
阅读次数:
307
黑字:认识红字:要学未添加:要学├─模拟├─字符串│ ├─字符串基础│ ├─kmp│ ├─trie│ ├─ac自动机│ ├─后缀数组│ └─后缀树├─搜索│ ├─深度搜索(dfs)│ ├─记忆化搜索│ ├─广度搜索(bfs)│ ├─双向广搜│ ├─回溯│ ├─A*│ ├─迭代深搜│ ├─IDA*│ ...
分类:
其他好文 时间:
2014-08-24 14:10:52
阅读次数:
353
题意:给出两个字符串,求最长公共子串的长度。
题解:首先将两个字符串连在一起,并在中间加一个特殊字符(字串中不存在的)分割,然后两个串的最长公共字串就变成了所有后缀的最长公共前缀。这时就要用到height数组,因为任意两个后缀的公共前缀必定是某些height值中的最小值,而这个值如果最大则一定是height中的最大值。在此题中还要注意height最大一定要在两个值所代表的后缀分属不同的字...
分类:
其他好文 时间:
2014-08-24 10:19:22
阅读次数:
184
UVA 10829 - L-Gap Substrings
题目链接
题意:一个字符串如果形如UGU,的形式,G的长度为L,那么称这个字符串为L串,给定一个字符串,问这个字符串子串为g串的个数
思路:做这题前先做了POJ3693,有一个思想就是枚举长度分段,这样的话对于一个U长度为l的而言,只要在当前位置和当前位置之后(l + g)的位置分别向前向后找lcp,两个lcp加起来的长度...
分类:
其他好文 时间:
2014-08-23 20:24:21
阅读次数:
349
POJ 3693 Maximum repetition substring
题目链接
题意:给定一个字符串,求出其子串中,重复次数最多的串,如果有相同的,输出字典序最小的
思路:枚举长度l,把字符串按l分段,这样对于长度为l的字符串,肯定会包含一个分段位置,这样一来就可以在每个分段位置,往后做一次lcp,求出最大匹配长度,然后如果匹配长度有剩余,看剩余多少,就往前多少位置再做一次...
分类:
其他好文 时间:
2014-08-23 19:05:11
阅读次数:
215
#include #include #include using namespace std;#define maxn 100100int wa[maxn],wb[maxn],wv[maxn],ws[maxn];int r[maxn],sa[maxn];char str[maxn];int cmp(...
分类:
其他好文 时间:
2014-08-23 16:35:51
阅读次数:
261