Trie树也称字典树,因为其效率很高,所以在在字符串查找、前缀匹配等中应用很广泛,其高效率是以空间为代价的。利用串构建一个字典树,这个字典树保存了串的公共前缀信息,因此可以降低查询操作的复杂度。下面以单词为例,插入、查找和删除实现#define MaxN 26typedef struct TrieN...
分类:
其他好文 时间:
2014-09-18 00:35:43
阅读次数:
208
Flying to the MarsTime Limit: 5000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 11228Accepted Submission(s): 361...
分类:
其他好文 时间:
2014-09-17 21:52:22
阅读次数:
323
poj2513:http://poj.org/problem?id=2513题意:就是求一个欧拉回路。题解:本题是判断欧拉通路是否存在,但是如果是用map的话就会超时,这里采用了trie树,有发现trie树的一种用法。神奇 啊 1 #include 2 #include 3 #include ...
分类:
其他好文 时间:
2014-09-17 10:09:52
阅读次数:
219
Trie树,又称为字典树,是一种树形结构,是一种哈希树的变种,是一种用于快速检索的多叉树数据结构。
用于保存大量的字符串。它的优点是:利用字符串的公共前缀来节约存储空间。
Trie的核心思想是空间换时间。利用字符串的公共前缀来降低查询时间的开销以达到提高效率的目的。
它有3个基本性质:
1、根节点不包含字符,除根节点外每一个节点都只包含一个字符。
2、从根节点到某一节点,路径上经过的...
分类:
其他好文 时间:
2014-09-16 23:48:21
阅读次数:
486
题目大意:给定一些单词和一个字符串,求有多少单词在字符串中出现过
首先我不想吐槽题号。真的不想。真的不想!!别问我为什么说这句话!!不想就是了!!
AC自动机模板题
简单介绍一下AC自动机
首先不要把这东西和自动AC机弄混 自动AC机算法等我们发明之后再加介绍
这东西的实现方法就是把所有单词插入一棵Trie树 然后在Trie树上跑KMP算法
每个节点有一个next指针 和KMP算法...
分类:
其他好文 时间:
2014-09-15 14:21:49
阅读次数:
176
第一部分:跳跃表
本文将总结一种数据结构:跳跃表。前半部分跳跃表性质和操作的介绍直接摘自《让算法的效率跳起来--浅谈“跳跃表”的相关操作及其应用》上海市华东师范大学第二附属中学 魏冉。之后将附上跳跃表的源代码,以及本人对其的了解。难免有错误之处,希望指正,共同进步。谢谢。
跳跃表(Skip List)是1987年才诞生的一种崭新的数据结构,它在进行查找、插入、删除等操作时的期望...
分类:
其他好文 时间:
2014-09-14 23:46:08
阅读次数:
1323
Trie树,又称字典树,单词查找树。它来源于retrieval(检索)中取中间四个字符构成的。用于存储大量的字符串以便支持快速模式匹配。主要应用在信息检索领域。 Trie有三种结构:标准Trie(standard trie),压缩Trie,后缀Trie(suffix trie)。 1、标准Trie ...
分类:
其他好文 时间:
2014-09-14 14:06:37
阅读次数:
242
poj1204:http://poj.org/problem?id=1204题意:给你n*m的字符串矩阵,然后p个查询,每个查询会给出一个字符串,然后问你在矩阵中能否通过8个方向搜索到这个字符串,输出地点以及搜索的方向。题解:这里的思想真的很好。离线,把要查询的字符串插入trie树中,然后在矩阵中暴...
分类:
其他好文 时间:
2014-09-10 23:37:21
阅读次数:
251
这题说的是给了一个长的字符串长度最大300000,又给了4000个单词 单词的长度不超过100.计算这个字符串能组成多少种不同单词的组合,求出方案总数。dp[i]以第i个字符为开始的字符串能有多少种的组成方案,这样每次去比较肯定是会超时的,然后可以用Trie树去优化,这样最多枚举100位种比4000...
分类:
其他好文 时间:
2014-09-10 17:42:10
阅读次数:
243
给n个数
求异或前缀(从前连续取一些数全作异或)和异或后缀(从后连续取一些数全作异或)异或的最大值
好坑啊,指针好坑啊
第一道trie树
简单说下解法(其实壳还是不深):
先异或所有数作为初始后缀
然后从前往后的数逐个从后缀出来,进入前缀,
在这个过程中,都把当前前缀变成二进制压入trie,然后当前后缀变成二进制从高位到低位尽量取和它数位不同的值,沿着trie往下走,得到一个最好...
分类:
其他好文 时间:
2014-09-09 13:11:40
阅读次数:
278