后缀数组、自动机
文章平均质量分 64
RZXZ
这个作者很懒,什么都没留下…
展开
-
【后缀数组】poj1743Musical Theme
推荐阅读《后缀数组——处理字符串的有力工具》。 后缀数组的主要目的是将每一个后缀提取出来,按字典序排序,并求出height数组(当前排名为i的后缀与排名为i-1的后缀的最长公共前缀)。后缀数组的排序是基于基数排序。bool cmp(int num[],int a,int b,int len){return num[a]==num[b]&&num[a+len]==num[b+len];}void原创 2015-12-28 23:52:55 · 253 阅读 · 0 评论 -
【后缀自动机】SPOJLCS SPOJNSUBSTR SPOJLCS2 HDU4416
据说后缀自动机可以替代后缀数组和后缀树…… 后缀自动机,用线性的节点数来保存所有的后缀。构建自动机struct node{ int ch[26], len, link; void init() { len=link=0; memset(ch,0,sizeof ch); }}tree[MAXN<<1];int pos;char w原创 2015-12-29 22:20:36 · 311 阅读 · 0 评论 -
【AC自动机】hdu2222 hdu2896 hdu3065 zoj3430 poj2778 hdu2243
AC自动机用于多个模式串与多个母串的匹配。 第一步:根据模式串建立字典树int len=strlen(w), r=root; for(int i=0;i<len;++i) { if(tree[r].ch[w[i]])r=tree[r].ch[w[i]]; else r=tree[r].ch[w[i]]=++cnt; } ++tree[r].c原创 2016-01-07 23:52:10 · 310 阅读 · 0 评论