字典树又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希树高。 摘自必应 其建立过程类似 ...
分类:
其他好文 时间:
2016-08-17 12:00:21
阅读次数:
198
字典树(又叫单词查找树、Trie树,TrieTree),能很好地处理和“串”相关的检索问题。字典树很好地利用了串的公共前缀,节约了存储空间。 字典树的插入(Insert)、删除(Delete)和查找(Find)都非常简单,用一个一重循环即可,即第i次循环找到前i个字母所对应的子树,然后进行相应的操作 ...
分类:
其他好文 时间:
2016-08-13 16:51:40
阅读次数:
206
1598: 最长公共前缀 Description 给定两个字符串s和t,现有一个扫描器,从s的最左边开始向右扫描,每次扫描到一个t就把这一段删除,输出能发现t的个数。 给定两个字符串s和t,现有一个扫描器,从s的最左边开始向右扫描,每次扫描到一个t就把这一段删除,输出能发现t的个数。 Input 第 ...
分类:
其他好文 时间:
2016-08-12 21:22:44
阅读次数:
145
题目链接:http://www.spoj.com/problems/DISUBSTR/en/ 题意:给定一个字符串,求不相同的子串个数。 思路:直接根据09年oi论文<<后缀数组——出来字符串的有力工具>>的解法。 还有另一种思想:总数为n*(n-1)/2,height[i]是两个后缀的最长公共前缀 ...
分类:
编程语言 时间:
2016-08-08 20:57:29
阅读次数:
209
字典树又称为单词查找树。用于统计排序大量字符串(不限于字符串),利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希树高。字典树的性质: 1.根节点不包含任何字符(空根节点) 2.从根节点到某一节点路径上的字符连起来就是一个字符串 3.每个节点的所有子节点包含的字符串不 ...
分类:
其他好文 时间:
2016-08-07 13:40:54
阅读次数:
221
题目链接:hdu_1403_Longest Common Substring 题意: 给你两个字符串,然你找最长的公共子串 题解: 后缀数组的经典应用,要找两个字符串的公共子串,那么就相当于找两个串的后缀的最长公共前缀,我们将两个字符串拼接在一起,中间插一个特殊字符 然后我们考虑height数组,h ...
分类:
编程语言 时间:
2016-08-03 18:40:49
阅读次数:
205
后缀数组。 然后按照排序完成之后的顺序,每个后缀统计贡献量。 统计第i个后缀的贡献的时候,如果这个后缀中没有X,贡献度为0。 有贡献的分3种情况考虑: 1.如果这个后缀height部分等于0(即与前一个后缀没有公共前缀),那么在height之后的部分中找到第一个X的位置pos,n-pos为贡献度。 ...
分类:
其他好文 时间:
2016-07-30 16:27:52
阅读次数:
209
后缀数组。求不可重叠最长重复子串。 二分答案+验证。每一次二分,将排序完序的后缀按顺序进行分组。每组内任意两个的最长公共前缀要>=二分值。如果有一组内存在两个后缀的SA值相差大于等于二分值,那么这个二分值可行。 ...
分类:
其他好文 时间:
2016-07-30 13:22:55
阅读次数:
120
1、 概述 Trie树,又称字典树,单词查找树或者前缀树,是一种用于快速检索的多叉树结构,如英文字母的字典树是一个26叉树,数字的字典树是一个10叉树。Trie一词来自retrieve,发音为/tri:/ “tree”,也有人读为/tra?/ “try”。Trie树可以利用字符串的公共前缀来节约存储 ...
分类:
其他好文 时间:
2016-07-23 13:35:34
阅读次数:
267
1014: [JSOI2008]火星人prefix Description 火星人最近研究了一种操作:求一个字串两个后缀的公共前缀。比方说,有这样一个字符串:madamimadam,我们将这个字符串的各个字符予以标号:序号: 1 2 3 4 5 6 7 8 9 10 11 字符 m a d a m ...
分类:
其他好文 时间:
2016-07-22 22:48:46
阅读次数:
219