publicclassWordDictionary{privateTrieNoderoot=newTrieNode();publicvoidaddWord(Stringword){Mapchildren=root.children;for(inti=0;ichildren=tn.children;T...
分类:
其他好文 时间:
2015-11-27 01:00:38
阅读次数:
172
很多时候,学习总是止于实现,因为有很多这样或者那样的问题。即便是你理解了这种结构,但是实现起来却是另外一番天地,实践,看源码,然后继续实现是现阶段我应该完成的事情。 这次来学习一下字典树。 字典树,就是对树结构的一种特殊处理。对于英文词典来说,26个英文字母可以任意组合,那么这个树必然是26...
分类:
编程语言 时间:
2015-11-26 15:20:04
阅读次数:
189
Tire树,又叫字典树,主要是用来查找单词,词频统计的.老规矩,直接上代码.package tireTree;public class TireTree { TireNode root; public TireTree(TireNode root) { this.root = root; } pr....
分类:
编程语言 时间:
2015-11-15 06:08:27
阅读次数:
1011
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5536题目大意是给了一个序列,求(si+sj)^sk的最大值。首先n有1000,暴力理论上是不行的。此外题目中说大数据只有10组,小数据最多n只有100。(那么c*n^2的复杂度应该差不多)于是可以考虑枚...
分类:
其他好文 时间:
2015-11-14 21:49:21
阅读次数:
306
题意:给出多个字符串,两两配对,求总配对次数。思路:如果两个字符串一样,ans=strlen(字符串)*2+2,如果不同,ans=公共前缀长度*2+1;用左儿子右兄弟建字典树。插入一个字符计算一次。 1 #include 2 #include 3 #include 4 #include 5 ...
分类:
其他好文 时间:
2015-11-14 19:25:00
阅读次数:
260
给你n个数,a1....an,求(ai+aj)^ak最大的值,i不等于j不等于k思路:先建字典树,暴力i,j每次删除他们,然后贪心找k,再恢复i,j,每次和答案取较大的,就是答案,有关异或的貌似很多都用字典树,也是醉了/*Problem : 5536 ( Chip Factory ) Jud...
分类:
其他好文 时间:
2015-11-14 16:34:19
阅读次数:
284
题目链接:http://poj.org/problem?id=3764题目大意是在树上求一条路径,使得xor和最大。由于是在树上,所以两个结点之间应有唯一路径。而xor(u,v)=xor(0,u)^xor(0,v)。所以如果预处理出0结点到所有结点的xor路径和,问题就转换成了求n个数中取出两个数,...
分类:
其他好文 时间:
2015-11-11 20:49:14
阅读次数:
283
用字典树思想来做。对于一个数,给出他的二进制,然后更具二进制建立字典树,然后每次询问的时候的数也给出二进制,如果当前为1,那就向0走,为0,向1走。#include#includeconst int maxn = 100010;struct node{ int flag; int num...
分类:
其他好文 时间:
2015-11-10 15:41:46
阅读次数:
159
给出若干模式串,再给出若干询问串,求每个询问串作为多少个模式串的子串出现。如果一个串是另一个串的子串,则一定是另一个串某个前缀的后缀或者某个后缀的前缀。根据字典树的性质,将模式串的每一个后缀插入字典树中,同时更新字典树中节点的cnt值。这里需要注意不要重复累加贡献,可以在字典树中新增一个num的信息...
分类:
其他好文 时间:
2015-11-10 00:08:03
阅读次数:
148
Implement a trie withinsert,search, andstartsWithmethods.Note:You may assume that all inputs are consist of lowercase lettersa-z.思路:应该就是字典树。 1 class T...
分类:
其他好文 时间:
2015-11-09 08:17:46
阅读次数:
205