#include
#include
#include
using namespace std;
#define MAXN 123123
char s[MAXN];
int sa[MAXN],t[MAXN],t2[MAXN],c[MAXN],n;
void build(int m)
{
int i,*x=t,*y=t2;
//其实下面的是计数排序
f...
分类:
编程语言 时间:
2014-12-31 10:04:05
阅读次数:
184
后缀数组倍增算法超时,听说用3DC可以勉强过,不愿写了,直接用hash+二分求出log(n)的时间查询两个字符串之间的任意两个位置的最长前缀.我自己在想hash的时候一直在考虑hash成数值时MOD取多大,如果取10^18的话,那么两数相乘个就超LL了,但是取10^9的话又怕出现重复的可能大.后面才...
分类:
编程语言 时间:
2014-10-16 17:01:02
阅读次数:
245
思路:这题看了题解说是后缀数组做的,然后自己就偿试了一下,唉……没想到不管是不管是倍增算法的后缀还是DC3算法的后缀都T了,实在无计可施了,可能只有哗然可以过了。不过比赛那天题解说是没有卡后缀的。只是比赛那天自己还不会后缀数组,所以这题自己根本就没有看到。因为后缀自己练得还比较少,这题正好用RMQ求任意两个后缀之间的最长公共前缀,所以自己就拿这题练手了,虽然T了,但是倍增的算法和DC3的算法都贴上...
分类:
其他好文 时间:
2014-09-03 22:44:57
阅读次数:
365
最近总是在做树链剖分的题(觉得有必要学一下倍增算法=_=)。这题也是一个树链剖分。维护和找答案的时候注意区间左右端点的颜色就OK了…… 上代码:#include #include #include #include #include #include #define N 100010#defi...
分类:
其他好文 时间:
2014-08-31 17:12:41
阅读次数:
196
CD操作Time Limit: 10000/5000 MS (Java/Others)Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 1111Accepted Submission(s): 297Problem Descri...
分类:
其他好文 时间:
2014-08-12 18:21:04
阅读次数:
217
好吧 由于我是个蒟蒻 c++不常用 特别是字符串渣成翔……pascal还好说 c++么……表示第一次用C++搞这个哎 ToT 顺便贴一发后缀数组的实现本节主要介绍后缀数组的两种实现方法: 倍增算法和 3 DC3 算法,并对两种算法进行了比较。可能有的读者会认为这两种算法难以理解,即使理解了也难以用程...
分类:
其他好文 时间:
2014-08-10 23:55:01
阅读次数:
446