字符串
Lcomyn
这个作者很懒,什么都没留下…
展开
-
Trie树学习记录
真的不能再拒绝字符串算法的学习,先从Trie树学起吧。。。 COGS 词链,裸题,建出Trie树后遍历一遍,比较根到每个叶子节点的单词个数,取最大值;code: #include #include #include using namespace std; struct trie_node{ char letter; int sum; bool f; trie_node *next[26原创 2015-04-22 19:34:51 · 561 阅读 · 0 评论 -
Trie树模板
#include #include #include using namespace std; struct trie_node{ char letter; int sum; bool f; trie_node *next[26]; trie_node(char letter): letter(letter) {int i;for (i=0;i<=25;++i) next[i]=NULL;原创 2015-04-22 19:50:06 · 612 阅读 · 0 评论 -
KMP算法学习笔记
KMP是一种字符串匹配算法,网上有许多的讲解和介绍,都非常清楚明白,这里只说明一点next[i]表示[1,i-1]位中的最长公共前缀后缀,因此在遇到字符不匹配时,直接将字符串右移j-next[j]位即可。不多说了,直接上习题 POJ 3461 Oulipo KMP算法裸题,直接上模板 code:#include #include #include using namespace std; cha原创 2015-04-25 16:54:24 · 712 阅读 · 0 评论 -
AC自动机学习记录
学完了Trie树和KMP算法,我们就可以继续学习AC自动机了。。。 AC自动机,全名Aho-Chorasick string match(不是所有题都可以AC的意思= =,否则OI比赛还有什么意义),由于多模板的字符串匹配,其基本做法是在Trie树上建立fail指针(基本相当于KMP算法中next数组),然后在Trie上进行KMP即可,不多说了,直接上习题。 COGS 1913 AC自动机的裸原创 2015-04-29 19:44:18 · 786 阅读 · 0 评论 -
后缀数组学习笔记
后缀数组是一个处理字符串的有力工具,基本用途有模式串匹配和后缀最长公共前缀;例题 【JSOI 2007】【BZOJ 1031】字符加密ciper 后缀数组的躶体,现将字符串复制成环,然后输出sa[i]<lensa[i] \lt len的s[sa[i]−1]s[sa[i]-1]即可,code:#include<iostream> #include<cstdio> #include<cstrin原创 2015-07-25 16:53:21 · 778 阅读 · 0 评论