Trie树,也叫字典树、前缀树。可用于”predictive text”和”autocompletion”,亦可用于统计词频(边插入Trie树边更新或添加词频)。在计算机科学中,trie,又称前缀树或字典树,是一种有序树,用于保存关联数组,其中的键通常是字符串。与二叉查找树不同,键不是直接保存在节点...
分类:
其他好文 时间:
2014-10-28 13:51:40
阅读次数:
546
Trie树又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希表高。 ...
分类:
其他好文 时间:
2014-10-27 21:08:03
阅读次数:
205
题目大意:给定一个不重复的序列a,在a中任选一个区间,求区间内的次大值与区间内的任意一个其它数的最大的异或值
首先我们枚举次大值 对于一个次大值 它可能选择的另一个数的取值范围为(l,r) 其中l为这个数左侧第二个比它大的数 r为这个数右侧第二个比它大的数
在这个区间内的Trie树中贪心寻找最大值即可
这个区间怎么求呢?我们维护一棵平衡树 将数从大到小将下标加进平衡树 每加进一个下标 比它大...
分类:
其他好文 时间:
2014-10-21 13:55:20
阅读次数:
185
题目大意:给定一个序列,多次询问[l,r]中最大子序异或和 强制在线
一直RE的同学注意,本题的强制在线如果直接加会爆int导致调用数组下标为负
首先我们有一个转化 维护前缀异或和数组a[] 那么[l,r]中最大子序异或和就是a数组中[l-1,r]中任取两个数的最大异或值
然后分块处理 对于每块的第一个数a[i] 我们依次处理出对于所有的j>=i的[i,j]中的最大异或值 即s[i][j]=...
分类:
其他好文 时间:
2014-10-21 10:23:24
阅读次数:
345
第一题:题目大意:有一本n个单词的字典,其中每个单词的长度不超过4且大于0。现在给你一篇文章,文章中没有分隔符,只有小写字母。现在需要你修改最少的字母,使文章(长度为m 是由字典中的单词构成。n≤100000,m≤200000解题过程:1.一开始还以为是Trie树,很开心的打完了Trie 结果发现题...
分类:
其他好文 时间:
2014-10-20 16:54:17
阅读次数:
152
AC自动机的题,需要注意的,建立失配边的时候,如果结点1失配边连到的那个结点2,那个结点2是一个单词的结尾,那么这个结点1也需要标记成1(因为可以看成,这个结点包含了这个单词),之后在Trie树上进行行走,每次走到下一个可以走的结点。
14378527
11468
Substring
Accepted
C++
0.585
2014-...
分类:
其他好文 时间:
2014-10-19 20:02:42
阅读次数:
207
View Code·用来判断:查询以当前词为前缀的词有多少个。
分类:
其他好文 时间:
2014-10-19 01:19:59
阅读次数:
162
第一题:题目大意:用邻接矩阵给出一棵树(边权非负)上N个节点相互之间的最短路距离,求这棵树所有边权的和。解题过程:1.暂时还没想出来,待AC。第二题:题目大意:给出一些单词,然后建立Trie树,然后求出Trie树的节点个数。解题过程:1.这题学过Trie树的就直接无脑的建树就可以了。。2.另外一种解...
分类:
其他好文 时间:
2014-10-18 13:59:57
阅读次数:
162
目前我常常使用的分词有结巴分词、NLPIR分词等等最近是在使用结巴分词,稍微做一下推荐,还是蛮好用的。一、结巴分词简介利用结巴分词进行中文分词,基本实现原理有三:基于Trie树结构实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图(DAG)采用了动态规划查找最大概率路径, 找出基于...
分类:
编程语言 时间:
2014-10-17 23:14:23
阅读次数:
319
最近在学习的时候,经常看到使用Trie树数据结构来解决问题,比如“ 有一个1G大小的一个文件,里面每一行是一个词,词的大小不超过16字节,内存限制大小是1M。返回频数最高的100个词。”
该如何解决? 有一种方案就是使用Trie树加 排序实现 。
什么是Trie 树呢?也就是常说的字典树,网上对此讲得也很多,简单补充一下个人理解: 它实际上相当于把单词的公共部分给拎出来,这样一层一层往上拎直...
分类:
编程语言 时间:
2014-10-15 22:19:34
阅读次数:
281