后缀数组按照惯例,先上模板:char s[maxn];int sa[maxn],t[maxn],t2[maxn],c[maxn],n;void build_sa(int m){ int i,*x=t,*y=t2; for(i=0;i=0;i--) sa[p--c[x[i]]]=i; ...
分类:
编程语言 时间:
2015-08-13 17:13:42
阅读次数:
189
模板如下,这样算是写的很详细的了吧。
/*
* 后缀数组模板-倍增法
* 使用方法:
* 1、读取字符串转换成int数组,长度为len,下标从0开始
* 2、在字符串末尾加一字典序最小字符,一般为0,并找到最大的字符设为maxa
* 3、调用函数da(num,sa,len+1,maxa+1)
* 求得的sa数组的含义: sa[i]为第i字典序后缀字符串的首字母下标
*...
分类:
编程语言 时间:
2015-08-11 23:29:20
阅读次数:
179
ACM 所有算法
数据结构
栈,队列,链表
哈希表,哈希数组
堆,优先队列
双端队列
可并堆
左偏堆
二叉查找树
Treap
伸展树
并查集
集合计数问题
二分图的识别
平衡二叉树
二叉排序树
线段树
一维线段树
二维线段树
树状数组
一维树状数组
N维树状数组
字典树
后缀数组,后缀树
块状链表
哈夫曼树
桶,跳跃表...
分类:
编程语言 时间:
2015-08-11 16:13:16
阅读次数:
357
求一个字符串中连续出现的次数最多的子串。例如字符串“abababc”,最多连续出现的为ab,连续出现三次。要和求一个字符串中的最长重复子串区分开来,还是上面的字符串,那么最长的重复子串为abab。两个题目的解法有些类似,都用到了后缀数组这个数据结构。求一个字符串中连续出现的次数最多的子串,首先生成后...
分类:
其他好文 时间:
2015-08-11 11:31:19
阅读次数:
114
传送门:BZOJ1717解题思路先把正解说一说:单调队列或者二分
然后么。。为什么我写的这么长?!
是罗穗骞的论文题嘛……就当给后缀数组练手吧
可重叠k次重复字串YM代码#include
using namespace std;
#define rep(i, a, b) for(int i = (a); i <= (b); i++)
#define red(i,...
分类:
其他好文 时间:
2015-08-10 22:18:19
阅读次数:
212
Musical ThemeTime Limit: 20 SecMemory Limit: 256 MB题目连接http://poj.org/problem?id=1743DescriptionA musical melody is represented as a sequence of N (1#...
分类:
编程语言 时间:
2015-08-10 22:05:01
阅读次数:
141
// poj 2774 Long Long Message 后缀数组
//
// 题目大意:
//
// 求两个串的最长公共子串.
//
// 解题思路:
//
// 后缀数组.将两个字符串用一个不出现在两个字符串的其他字符连接,并在最后
// 同样用一个字符作为结束.一个串的子串,一定是某个后缀的前缀.求出height数组
// height[i]表示sa[i-1]和sa[i]的公共前缀L...
分类:
编程语言 时间:
2015-08-10 16:12:56
阅读次数:
166
为什么我的后缀数组跑得这么慢...把字符串复制一遍放在最后, 然后跑sa, 扫一遍就行了...---------------------------------------------------------------------#includeusing namespace std;const ...
分类:
编程语言 时间:
2015-08-08 14:56:32
阅读次数:
200
二分答案m, 后缀数组求出height数组后分组来判断.------------------------------------------------------------#includeusing namespace std;const int maxn = 20009;struct HASH...
分类:
编程语言 时间:
2015-08-08 11:44:48
阅读次数:
427
题意: 求长度大于等于K的公共子串的个数。位置不同就算不同。后缀数组求依次SA LCP, 然后就是统计答案了, 暴力统计n^2复杂度显然不可以, 我们可以利用lcp数组的"部分单调性", 用一个栈,栈中保存小于等于当前lcp的原数组的下标,两次统计, 第一次统计, 按B串统计, 把A串大于等于K的那...
分类:
编程语言 时间:
2015-08-07 22:03:51
阅读次数:
125