2012年7月11日
摘要:
1 #include<cstdio> 2 #include<cstring> 3 #include<vector> 4 #include<algorithm> 5 typedef __int64 LL; 6 using namespace std; 7 #define MAXN 1<<11 8 #define MAXM 15 9 int n,m;10 vector<int>G[MAXN];11 LL dp[MAXM][MAXN];12 bool OK(int a,int b)13 {14 int i,temp,cnt;15 阅读全文
posted @ 2012-07-11 22:12
DrunBee
阅读(254)
评论(0)
推荐(0)
摘要:
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
阅读(2680)
评论(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
阅读(430)
评论(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
阅读(300)
评论(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
阅读(756)
评论(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
阅读(916)
评论(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
阅读(332)
评论(0)
推荐(0)
浙公网安备 33010602011771号