后缀数组
文章平均质量分 81
Benzema67
北京邮电大学学生
展开
-
poj 1743
后缀数组#include#include#includeusing namespace std;#define MAXN 20010int n,r[20010];int sa[20010];int wa[MAXN],wb[MAXN],wv[MAXN],ws[MAXN];int height[MAXN],rank[MAXN];inline bool cmp(i原创 2012-07-24 16:57:58 · 897 阅读 · 0 评论 -
后缀数组模版
参考论文int wa[MAXN],wb[MAXN],wv[MAXN],ws[MAXN];inline bool cmp(int *r,int a,int b,int len){ return r[a]==r[b]&&r[a+len]==r[b+len];}void SA(char *r,int *sa,int n,int m){//r为字符串数组,sa为后缀数组,n=st原创 2012-07-24 17:56:19 · 832 阅读 · 0 评论 -
poj 3261
后缀数组#include#include#includeusing namespace std;#define MAXN 20010int n,newn,k,r[20010],rr[20010];int sa[20010];int wa[MAXN],wb[MAXN],wv[MAXN],ws[MAXN];int height[MAXN],rank[MAXN];inline bo原创 2012-07-27 16:58:15 · 872 阅读 · 0 评论 -
POJ 2774
两个字符串的公共字串#include#include#includeusing namespace std;#define MAXN 200100char r1[MAXN/2],r2[MAXN/2],r[MAXN];int sa[MAXN];int wa[MAXN],wb[MAXN],wv[MAXN],ws[MAXN];int height[MAXN],rank[MAXN];原创 2012-08-29 21:16:05 · 786 阅读 · 0 评论 -
SGU 411 Petya the Hero
求两个字符串最长公共回文字串,并随便输出一个#include#include#include#includeusing namespace std;#define MAXN 10100int rad[MAXN];char s[MAXN];char r1[MAXN/2],r[MAXN];int sa[MAXN];int wa[MAXN],wb[MAXN],wv[MAX原创 2012-08-30 16:02:04 · 898 阅读 · 0 评论 -
URAL 1297
后缀数组求最长回文串#include#include#include#includeusing namespace std;#define MAXN 2010int dp[2010][30];char r[MAXN],rr[MAXN];int sa[MAXN];int wa[MAXN],wb[MAXN],wv[MAXN],ws[MAXN];int height[MAXN原创 2012-07-27 21:02:15 · 1052 阅读 · 0 评论 -
HDU 3948
UESTC的神题啊!主要是去重比较难想主要思想就是:按sa数组i从2开始枚举到n,pre1记录的是上一次计算过的回文串,所以先与height[i]取小值,代表这次计算重复的回文串,然后与实际的回文串相比较计入总和。然后更新pre1,继续向下迭代。这里回文的两个后缀是不会重复计算的,因为在SA数组中如果有夹在之间的后缀,那么pre1的大小是不会变小的,所以不会被重复计算pre2同理更原创 2012-09-01 17:48:44 · 1800 阅读 · 0 评论 -
SPOJ 705/694
两道一样的后缀数组题求不同的字串个数#include#include#includeusing namespace std;#define MAXN 1010char r[1010];int sa[1010];int wa[MAXN],wb[MAXN],wv[MAXN],ws[MAXN];int height[MAXN],rank[MAXN];inline boo原创 2012-07-27 17:19:43 · 992 阅读 · 0 评论 -
POJ 3415 && HDU 4416
两道后缀数组的应用POJ 3415求的是两个串的所有公共字串的个数HDU 4416求的是两个串的所有不相同的公共字串的个数POJ 3415#include#include#include#include#define MAXN 200100typedef long long ll;using namespace std;char r[MAXN];i原创 2013-10-21 21:15:05 · 988 阅读 · 0 评论