来源于英文“retrieval”. Trie树就是字符树,其核心思想就是空间换时间。举个简单的例子。 给你100000个长度不超过10的单词。对于每一个单词,我们要判断他出没出现过,如果出现了,第一次出现第几个位置。这题当然可以用hash来,但是我要介绍的是trie树。在某些方面它的用途更大。比如说...
分类:
编程语言 时间:
2015-04-28 01:32:41
阅读次数:
140
??
字典树:又称为Trie,是一种用于快速检索的多叉树结构。Trie把要查找的关键词看作一个字符序列,并根据构成关键词字符的先后顺序构造用于检索的树结构;一棵m度的Trie树或者为空,或者由m棵m度的Trie树构成。
注意:和二叉查找树不同的是,其节点并非存储一个元素。
优点:1、利用公共内存,以达到节约内存的目的
2、根节点只存储其子树,不存储字母
3、每个节...
分类:
其他好文 时间:
2015-04-27 09:57:28
阅读次数:
126
构建trie树,可以得到4类结点:必胜点,必负点,完全主宰点(可胜可负),完全无法主宰点(无法控制最终胜负)。递归到叶子结点,即为必胜点,回溯分情况讨论。注意叶子结点使用属性n来控制,n表示当前结点的儿子结点的数目,叶子结点没有儿子。 1 /* 456D */ 2 #include 3 #i...
分类:
其他好文 时间:
2015-04-26 19:39:42
阅读次数:
121
题目描述Trie 图就是在 Trie 树上建立 fail 指针,类似于KMP算法中的next数组的作用。这个数据结构的作用是判断一个字符串中是否包含一组字符串中的任意一个。结构体定义是这样的:typedef struct trie_node { trie_node *nodes[26]; trie_...
分类:
其他好文 时间:
2015-04-24 20:44:14
阅读次数:
120
AC自动机在trie树上实现KMP的一种数据结构,可以完成多模式串的匹配,核心要理解fail指针的含义,即让当前字符失配时跳转到具有最长公共前后缀的字符继续匹配,从根节点到当前节点(s)fail指针的节点(p)的路径字符串必定为从根节点到节点s的路径字符串的一个后缀,还有理解trie图,当字符串.....
分类:
其他好文 时间:
2015-04-23 23:08:44
阅读次数:
283
题目大意:
一个"hat's word"是一个单词,可以恰好由字典中其他两个单词连接得到(比如字典中是hat's和word)。
给出字典中的单词,输出所有的hat's word。
思路:
建立字典树,将每个单词都插入到Trie树中,Count统计单词(不是前缀)出现次数。按顺序将每个单词
所有可能的长度拆分成前缀单词和后缀单词,判断这两部分是否都在字典树中,是就是hat's word,
进行输出,否则继续拆分当前单词或下一单词。...
分类:
其他好文 时间:
2015-04-22 14:01:55
阅读次数:
124
思路:完全看题目中的介绍就行了。还有里面的input写道:不保证是英文单词,也有可能是火星文单词哦。比赛结束后的提交是不用考虑26个字母之外的,都会AC,如果考虑128种可能的话,爆了内存。步骤就是,在插单词的同时记录该结点之后的单词数,查词就查最后一个字母所在结点上的单词数。 1 #include...
分类:
其他好文 时间:
2015-04-21 00:14:44
阅读次数:
244
题目描述 Trie树概念相对简单。 如果是用于保存英文词典,时空效率都是不错的。 如果保存中文词典,对子节点的索引可能需要用一个哈希表来存。 在建树的过程中可以顺便统计特定前缀的单词数。 如果要求重复单词不重复统计,可以在插入前先查询一次。 本题的具体代码如下:#include #include #...
分类:
其他好文 时间:
2015-04-20 20:34:46
阅读次数:
137
不敢去做一件事就会一直觉得它很难。。
以前一直觉得AC自动机应该超难写,学了以后发现实在太好写了。。
AC自动机的fail指针与KMP算法的next数组是极为相似的,都是通过这些来减少冗余的扫描,所以我也把AC自动机的fail指针名字直接开成next了。。
AC自动机与KMP的不同在于KMP是单模式串匹配,AC自动机是多模式串匹配,所以AC自动机可以理解为就是在trie树上加上一些next指...
分类:
其他好文 时间:
2015-04-18 10:05:17
阅读次数:
178
题目链接:hihoCoder - 1014小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮助,在编程的学习道路上一同前进。这一天,他们遇到了一本词典,于是小Hi就向小Ho提出了那个经典的问题:“小Ho,你能不能对于每一个我给出的字符串,都在这个词典里面找到以...
分类:
其他好文 时间:
2015-04-12 22:37:32
阅读次数:
131