Trie树
Trie树,又称字典树,是字典的一种存储方式,字典中的每一个单词在Trie树种体现为从根节点出发的路径,路径中每条边代表一个字母,将边连接起来便形成了对应的单词,如图,就是一颗Trie树,其中存储了ab,ac,bc,c,cd五个单词(其中加粗节点表示单词结尾节点)。
一:Trie树的基本概念
Trie树是由链接的节点所组成的数据...
分类:
其他好文 时间:
2014-12-27 20:27:15
阅读次数:
210
Problem Description
A hat’s word is a word in the dictionary that is the concatenation of exactly two other words in the dictionary.
You are to find all the hat’s words in a dictionary.
Inpu...
分类:
其他好文 时间:
2014-12-24 13:32:23
阅读次数:
165
我说这个只是精简版(想的起来的)你们怕不怕……各种特定时间的手滑/XXX写错就不计算了1.线段树忘记pushdown……2.dfs序上建XXX时总忘记使用dfs序……3.trie的内存池要开3000000……其实开2000000有时也不是不能过题4.int fac[MAXN];unsigned lo...
分类:
其他好文 时间:
2014-12-22 09:17:54
阅读次数:
141
用记录附加信息的val数组记录次数即可。PS:trie树还有种动态写法,使用指针和动态分配内存代替了连续的ch数组,更加节省内存。Reference:http://blog.csdn.net/architect19/article/details/8966247 1 #include 2 #inc....
分类:
其他好文 时间:
2014-12-22 01:59:38
阅读次数:
210
一个上午两道题,妥妥的作死。。。首先还是按照之前思路建立可持久化trie,然后发现了点问题。。。trie只能支持对于给定v求出最大xor值,也就是说我们要枚举a[i] (i ∈ [l, r]),于是单次询问复杂度O(n * 30),爆表于是想到了需要预处理,方法是分块,预处理复杂度O(n * (n ...
分类:
其他好文 时间:
2014-12-21 12:40:56
阅读次数:
332
Orz hzwer && zky我说怎么做过。。。以前交了个暴力,竟然8s过了。。。Σ( ° △ °|||)︴好吧好吧。。重新写。。。但是怎么感觉。。。hzwer的trie的insert有点小小的问题呢?(再研究研究) 1 /*************************************...
分类:
其他好文 时间:
2014-12-21 10:19:17
阅读次数:
169
"trie的经典应用" -- by hzwer我们把每个点到根的xor值记下来,然后找出两个xor值最大的即可(因为(a ^ c) ^ (b ^ c) = a ^ b)于是用trie把每个数的二进制位记下来,每次query的时候利用贪心,试图走到另一个儿子即可。 1 /**************....
分类:
其他好文 时间:
2014-12-20 23:28:26
阅读次数:
362
题解:构建出trie图,令f[i][j]表示到第i个字符走到j号节点最少需要修改的字符数,然后枚举后继节点转移即可。代码:没写caseWA了n发。。。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7...
分类:
其他好文 时间:
2014-12-20 23:28:19
阅读次数:
346
题解:首先知道一点trie不仅可以求与某个数异或的最大值.最小值,还能求第k大值,不能再神,orz!!!多添加一个size域即可。然后本题做法类似于超级钢琴。我们先求出每个a[i]的第二异或最小值,然后放进堆里(第一是和自己)然后我们往外取最小值,每次取出一个之后a[i]的第k小异或值就压入a[i]...
分类:
其他好文 时间:
2014-12-20 22:04:02
阅读次数:
261