快排的代码很容易理解。1intsa[MAX],temp[MAX],rank[MAX];2intn,k;3boolcmp_sa(inti,intj){4if(rank[i]!=rank[j])returnrank[i]<rank[j];5else{6intri=i+k<=n?rank[i+k]:-1;...
分类:
编程语言 时间:
2014-12-12 10:09:29
阅读次数:
196
题目大意:在喵星球上有一些喵~,每个喵都有一个姓和一个名字。点名的时候如果一个喵中姓或者名中有这个串的话他就会喵。问每次点名有几个喵喵了,和每个喵喵了几次。
思路:好萌的题喵~
AC自动机构造fail树是可以做的,但是和SA乱搞的时间差不多,我就是SA乱搞的w
把所有的串(姓名,询问)用$连接成一个串,然后做后缀数组,height数组。过程中记录一下每一个后缀数属于哪个喵,还有询问在...
分类:
编程语言 时间:
2014-12-10 10:50:36
阅读次数:
229
题目大意及后缀数组做法见 http://blog.csdn.net/popoqqq/article/details/41042473
原来正解是fail树……难怪后缀数组被卡成这样
首先我们将给出的n个串构建AC自动机
朴素的做法是对于每个串将这个串每个节点沿着fail指针扫一遍,将路径上的所有点的cnt++
但是这样做会TLE
我们不妨反向思考 fail指针反向后是一棵树 沿着fail...
分类:
其他好文 时间:
2014-12-08 21:29:02
阅读次数:
203
题目大意:给出一个字符串,求出出现过k次以上的最长的子串(可重叠).
思路:现弄出来sa数组和height数组,之后就是判断每个长度为k的height数组的区间中最小的数字的最大值了.为什么好多人都二分了?这只要单调队列扫一次就行了啊..
CODE:
#include
#include
#include
#include
#include
#define M...
分类:
其他好文 时间:
2014-12-08 13:57:55
阅读次数:
134
后缀数组学习笔记——详解,debug代码、手动模拟过程,一定能看懂...
分类:
编程语言 时间:
2014-12-06 19:35:35
阅读次数:
213
题目大意:给出两个字符串,求出这两个字符串的最长公共序列。
思路:把两个字符串合成一个,然后跑一次后缀数组,求出rank数组和height数组,之后验证是否rank临近的两个后缀在不同的串里,如果是的话就更新答案。
CODE:
#include
#include
#include
#include
#define MAX 2000100
using namespa...
分类:
编程语言 时间:
2014-12-05 15:31:09
阅读次数:
185
题目大意:给出一个字符串,循环字符串的起始位置,可以得到length个不同的字符串,问把这些字符串排序之后每一个字符串的第一位是什么。
思路:后缀数组裸题,只需要将整个字符串倍增,然后求一次sa。
CODE:
#include
#include
#include
#include
#define MAX 200010
using namespace std;
c...
分类:
编程语言 时间:
2014-12-05 10:55:44
阅读次数:
184
#include#include#include#include#include#include#include#include#include#include#include#include#define rep(i,n) for(int i=0;i=a;--i)#define PB push_b...
分类:
编程语言 时间:
2014-11-30 13:40:21
阅读次数:
241
后缀排序DescriptionTim正在自学《数据结构》,他刚刚学会如何比较两个字符串大小。书上是这么说的(和Pascal语言中的比较规则相同,学习过Pascal语言的同学可以跳过这段):比较两个不同字符串s1=’p1p2p3…pN’和s2=’q1q2q3…qM’的大小,设Nqi,且i最小;若pis...
分类:
编程语言 时间:
2014-11-26 20:44:31
阅读次数:
250
字符串的处理真可谓是博大精深,后缀数组这种数据结构我花了两天时间才明白了其构造的过程。主要是代码不好理解。
数据结构:
1.sa数组,就是后缀数组,按照字典序排列,其意义为:sa[i]=k,排第i名的子串是从k位开始的。
2.rank名次数组,其意义为:rank[i]=k,以i为起点的子串排名为k。
很容易看出来两者可以相互转化。
求这两个数组的过程是基于基数排序,计数排序的方法。
下...
分类:
编程语言 时间:
2014-11-22 12:07:41
阅读次数:
199