模版:const int maxn = 1000010;#define F(x) ((x)/3+((x)%3==1?0:tb))#define G(x) ((x)=0;i--) b[--wss[wv[i]]]=a[i]; return;}void dc3(int *r,int *sa,int ...
分类:
其他好文 时间:
2014-09-24 12:56:46
阅读次数:
266
Good Article Good sentence
Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 2308 Accepted Submission(s): 649
Problem Description
In m...
分类:
其他好文 时间:
2014-09-24 00:16:15
阅读次数:
382
后缀数组(suffix array)详解转载请注明:一.What‘s Suffix Array?用我的理解,后缀数组是一种功能强大的字符串处理工具,堪称字符串处理神奇,尤其是在字符串匹配方面更是有着出色的处理能力。其实后缀数组是后缀树的一个非常精巧的替代品,它比后缀树容易编程实现,能够实现后缀树的很...
分类:
其他好文 时间:
2014-09-23 18:29:04
阅读次数:
298
思路:这题一看就知道是后缀数组做的了,好像以前做过,不过现在专攻哈希,所以就用哈希做了。
不过这题我真是要疯了!!!
刚开始写的就对了,然后二分while循环那忘了写等号了,然后一直WA,尼玛,然后自己居然给出一组样例:
bbaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaa
这组的样例中的长度为6和7的时候哈希值居然不一样,然后输出了6;然后逗B的以为哈希是有bug...
分类:
其他好文 时间:
2014-09-22 23:51:33
阅读次数:
300
BF算法,KMP算法,后缀数组。总结下,其实这样理解算法,很简单~~~...
分类:
其他好文 时间:
2014-09-20 21:16:49
阅读次数:
261
终于学会倍增法了, 先一个最水最水的后缀数组应用。#include #include #include using namespace std;const int maxn = 1e6;char buf[maxn];int str[maxn], len, sa[maxn];inline int id...
分类:
其他好文 时间:
2014-09-19 17:16:25
阅读次数:
184
给出一个字符串,对于每次的k,求所有子串(去除重复后的)中排名为k的L和R,其中如果有多组解,输出L最小的。后缀数组处理过后,sum[i]表示 sa[1] 到 sa[i] 一共有多少个非重复字串,在sum数组中二分求出k的lower_bound=pos,那么第一次出现这个子串的后缀就是sa[pos]...
分类:
其他好文 时间:
2014-09-17 18:26:52
阅读次数:
210
后缀数组+RMQ+二分
后缀数组二分确定第K不同子串的位置 , 二分LCP确定可选的区间范围 , RMQ求范围内最小的sa
Boring String Problem
Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 661...
分类:
其他好文 时间:
2014-09-17 16:53:22
阅读次数:
256
原本是《后缀数组——处理字符串的有力工具》论文中的第一道例题,发现自己智商不够,一个下午没有看懂后缀数组= =,就用hash写了#include #include #include #include using namespace std;typedef long long LL;const int...
分类:
其他好文 时间:
2014-09-16 23:31:31
阅读次数:
192
有点小可惜这道题,当时整个思路都想到了,就是最后找最左下标的时候不会处理,
然后结束完发现直接暴力就可以了,想到了可是不敢写,10w个a直接就T了啊。。。
数据太弱了,敢写就过系列啊 T T。
然后希望有大神提供完美思路!
题意:
给一个字符串 然后n次询问
对于每一次询问给一个v
然后问第 l⊕r⊕v+1小的子串的区间 (⊕代表异或)
然后输出l r
这里的l r 就是上...
分类:
其他好文 时间:
2014-09-16 17:31:32
阅读次数:
238