Suffix array
Yukar_syt
这个作者很懒,什么都没留下…
展开
-
Musical Theme POJ 1743
/*二分最长重复长度+利用height值对后缀分组 */#include#include#includeusing namespace std;const int maxn=20005;//以下为倍增算法求后缀数组int wa[maxn],wb[maxn],wv[maxn],Ws[maxn];int cmp(int *r,int a,int b,int l){retu原创 2012-09-06 10:45:43 · 574 阅读 · 0 评论 -
HDU str2int 前缀和的力量
#include#include#includeusing namespace std;const int maxn=200050;const int mod=2012;//以下为倍增算法求后缀数组int wa[maxn],wb[maxn],wv[maxn],Ws[maxn];int cmp(int *r,int a,int b,int l){return r[a]==r[b原创 2012-10-28 21:00:34 · 2880 阅读 · 0 评论 -
CF 19C 后缀数组O(1)判Repeats ,优先队列模拟操作+map离散
#include #include #include #include#include#includeusing namespace std; const int maxn=100005; //以下为倍增算法求后缀数组 int wa[maxn],wb[maxn],wv[maxn],Ws[maxn]; int cmp(int *r,int a,int b转载 2012-11-05 16:46:01 · 775 阅读 · 0 评论 -
String CF 128B 第k大子串
#include #include #include using namespace std; typedef __int64 lld;const int maxn=200005; //以下为倍增算法求后缀数组 int wa[maxn],wb[maxn],wv[maxn],Ws[maxn]; int cmp(int *r,int a,int b,i原创 2012-11-01 19:32:43 · 1549 阅读 · 0 评论 -
Good Article Good sentence Hdu
#include#include#includeusing namespace std;const int maxn=300505;const int INF=400005;typedef __int64 lld ;//以下为倍增算法求后缀数组int wa[maxn],wb[maxn],wv[maxn],Ws[maxn];int cmp(int *r,int a,int b,i原创 2012-09-24 08:00:45 · 869 阅读 · 0 评论 -
Life Forms 3294
#include#include#includeusing namespace std;const int maxn=200005;//以下为倍增算法求后缀数组int wa[maxn],wb[maxn],wv[maxn],Ws[maxn];int cmp(int *r,int a,int b,int l){return r[a]==r[b]&&r[a+l]=原创 2012-09-15 08:37:44 · 612 阅读 · 0 评论 -
Common Substrings 后缀数组+单调栈
//后缀数组+单调栈#include#include#includeusing namespace std;const int maxn=200005;typedef __int64 lld;//以下为倍增算法求后缀数组int wa[maxn],wb[maxn],wv[maxn],Ws[maxn];int cmp(int *r,int a,int b,int原创 2012-09-13 21:09:33 · 584 阅读 · 0 评论 -
Long Long Message POJ
#include#include#includeusing namespace std;const int maxn=200050;const int INF=100000000;//以下为倍增算法求后缀数组int wa[maxn],wb[maxn],wv[maxn],Ws[maxn];int cmp(int *r,int a,int b,int l){re原创 2012-09-13 10:30:01 · 526 阅读 · 0 评论 -
Maximum repetition substring POJ
#include #include #include using namespace std; const int maxn=100005; //以下为倍增算法求后缀数组 int wa[maxn],wb[maxn],wv[maxn],Ws[maxn]; int cmp(int *r,int a,int b,int l) {re原创 2012-09-12 21:30:11 · 1584 阅读 · 0 评论 -
Power Strings POJ DC3
//d3与d2定义应该一样吧,随便套了一下没看过#include#includeconst int maxn=3000010;int ws[maxn],wa[maxn],wb[maxn],wv[maxn],sa[maxn],rank[maxn],height[maxn],a[maxn],f[maxn];char s[maxn];//dc3#define F(x) ((x原创 2012-09-11 10:15:55 · 587 阅读 · 0 评论 -
694. Distinct Substrings SPOJ
//给你长度为n,求不同的字符串个数//每个子串一定是某个后缀的前缀,那么原问题等价于所求后缀之间不同的前缀个数#include#include#includeusing namespace std;const int maxn=20005;//以下为倍增算法求后缀数组int wa[maxn],wb[maxn],wv[maxn],Ws[maxn];int原创 2012-09-06 14:18:14 · 556 阅读 · 0 评论 -
Boring counting HDU 3518
//出现两次及以上不重复的概率//枚举长度,通过height值判断每组中是否可能#include#include#includeusing namespace std;const int maxn=20005;//以下为倍增算法求后缀数组int wa[maxn],wb[maxn],wv[maxn],Ws[maxn];int cmp(int *r,int a,int b,int翻译 2012-09-06 12:32:39 · 547 阅读 · 0 评论 -
Milk Patterns POJ 3261
//二分答案+利用height判断同组出现次数是否达到k次#include#include#includeusing namespace std;const int maxn=1000005;//以下为倍增算法求后缀数组int wa[maxn],wb[maxn],wv[maxn],Ws[maxn];int cmp(int *r,int a,int b,int原创 2012-09-06 13:09:08 · 583 阅读 · 0 评论 -
1297. Palindrome
/*http://acm.timus.ru/problem.aspx?space=1&num=1297给定一个字符串,求最长回文字串把原串翻转后,穷举每一位,相当于求最长公共前缀lcp suffix(j) 和 suffix(k) 的最长公共前缀为height[rank[j]+1],height[rank[j]+2],...height[rank[k]]最小值*/#翻译 2012-09-06 17:32:56 · 543 阅读 · 0 评论 -
Little Elephant and Strings CF204E 注意何时线段树update()
#include#include#includeusing namespace std;typedef __int64 lld;const int maxn=200005;//以下为倍增算法求后缀数组int wa[maxn],wb[maxn],wv[maxn],Ws[maxn];int cmp(int *r,int a,int b,int l){return r[a]==r[原创 2012-11-06 16:12:28 · 889 阅读 · 0 评论