上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 20 下一页
  2012年7月11日
摘要: 1、基本定义。子串:字符串S的子串r[i...j]。后缀:以i开始的后缀表示为Suffix(i)。大小比较:按字典序。后缀数组:SA是一个一维数组。将S的后缀从小到大排序后,后缀的开头位置顺次放入SA。(SA[i]=j:排在第i个的是Suffix(j))名词数组:Rank[i]是Suffix(i)在后缀中从小到大排列的名次。(Rank[i]=j:Suffix(i)排在第j个)后缀数组和名次数组为互逆运算:设Rank[i]=j,则SA[j]=i。2、倍增算法。目的:设字符串长度为n,在O(nlog2n)求出SA数组和Rank数组。 1 int wa[MAXN],wb[MAXN],wv[MAXN] 阅读全文
posted @ 2012-07-11 20:51 DrunBee 阅读(2650) 评论(0) 推荐(2) 编辑
摘要: 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 using namespace std; 5 #define MAXN 5010 6 char s[MAXN]; 7 int wa[MAXN],wb[MAXN],wv[MAXN],ws[MAXN]; 8 int sa[MAXN],height[MAXN],rk[MAXN]; 9 inline bool cmp(int *r,int a,int b,int L)10 {11 return r[a]==r[b]&&r[a+ 阅读全文
posted @ 2012-07-11 20:27 DrunBee 阅读(423) 评论(0) 推荐(0) 编辑
摘要: 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 using namespace std; 5 #define MAXN 100010 6 #define MAXM 20 7 char s[MAXN]; 8 int wa[MAXN],wb[MAXN],wv[MAXN],ws[MAXN]; 9 int sa[MAXN],height[MAXN],rk[MAXN]; 10 int st[MAXM][MAXN],log2[MAXN]; 11 inline bool cmp(int *r,i 阅读全文
posted @ 2012-07-11 20:25 DrunBee 阅读(276) 评论(0) 推荐(0) 编辑
摘要: 1 #include<cstdio> 2 #include<cstring> 3 #define MAXN 660 4 char s[MAXN]; 5 int wa[MAXN],wb[MAXN],wv[MAXN],ws[MAXN]; 6 int sa[MAXN],height[MAXN],rk[MAXN]; 7 inline bool cmp(int *r,int a,int b,int L) 8 { 9 return r[a]==r[b]&&r[a+L]==r[b+L]; 10 } 11 void SA(int n,int m) 12 { 13 int 阅读全文
posted @ 2012-07-11 11:50 DrunBee 阅读(749) 评论(0) 推荐(0) 编辑
摘要: 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 using namespace std; 5 #define MAXN 1010 6 char s[MAXN]; 7 int wa[MAXN],wb[MAXN],wv[MAXN],ws[MAXN]; 8 int sa[MAXN],height[MAXN],rk[MAXN]; 9 inline bool cmp(int *r,int a,int b,int L)10 {11 return r[a]==r[b]&&r[a+ 阅读全文
posted @ 2012-07-11 11:19 DrunBee 阅读(907) 评论(0) 推荐(0) 编辑
摘要: 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 using namespace std; 5 #define MAXN 1100 6 #define MAXL 200100 7 char str[MAXN][MAXN],s[MAXL]; 8 int wa[MAXL],wb[MAXL],wv[MAXL],ws[MAXL]; 9 int sa[MAXL],height[MAXL],rk[MAXL]; 10 int m,len[MAXN]; 11 inline bool cmp(int 阅读全文
posted @ 2012-07-11 10:39 DrunBee 阅读(320) 评论(0) 推荐(0) 编辑
  2012年7月10日
摘要: 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 using namespace std; 5 #define MAXN 10010 6 #define MAXM 10 7 #define MAXL 100100 8 #define INF 123456789 9 char s[MAXL],str[MAXM][MAXN]; 10 int m,len[MAXM]; 11 int wa[MAXL],wb[MAXL],wv[MAXL],ws[MAXL]; 12 int sa[MAXL],h 阅读全文
posted @ 2012-07-10 23:23 DrunBee 阅读(373) 评论(0) 推荐(0) 编辑
摘要: 1 #include<cstdio> 2 #include<cstring> 3 typedef __int64 LL; 4 #define MAXN 200010 5 char s[MAXN]; 6 int wa[MAXN],wb[MAXN],wv[MAXN],ws[MAXN]; 7 int sa[MAXN],height[MAXN],rk[MAXN]; 8 int stk[MAXN],cnt[MAXN]; 9 inline bool cmp(int *r,int a,int b,int len) 10 { 11 return r[a]==r[b]&& 阅读全文
posted @ 2012-07-10 20:02 DrunBee 阅读(333) 评论(0) 推荐(0) 编辑
  2012年7月8日
摘要: 1 #include<cstdio> 2 #include<algorithm> 3 using namespace std; 4 #define MAXN 100010 5 #define MAXM 20 6 char s[MAXN]; 7 int wa[MAXN],wb[MAXN],wv[MAXN],ws[MAXN]; 8 int sa[MAXN],height[MAXN],rk[MAXN]; 9 int st[MAXM][MAXN],log2[MAXN]; 10 int len[MAXN]; 11 inline bool cmp(int *r,int a,int 阅读全文
posted @ 2012-07-08 23:54 DrunBee 阅读(402) 评论(0) 推荐(0) 编辑
摘要: 1 #include<cstdio> 2 #include<algorithm> 3 using namespace std; 4 #define MAXN 50010 5 #define MAXM 20 6 char s[MAXN]; 7 int wa[MAXN],wb[MAXN],wv[MAXN],ws[MAXN]; 8 int sa[MAXN],height[MAXN],rk[MAXN]; 9 int st[MAXM][MAXN],log2[MAXN]; 10 inline bool cmp(int *r,int a,int b,int len) 11 { 12 阅读全文
posted @ 2012-07-08 01:40 DrunBee 阅读(411) 评论(0) 推荐(0) 编辑
上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 20 下一页