Trie的应用题目。
本题有两个难点了:
1 动态建立Trie会超时,需要静态建立数组,然后构造树
2 判断的时候注意两种情况: 1) Tire树有133,然后插入13333556的时候,2)插入顺序倒转过来的时候
修改一下标准Trie数的插入函数就可以了:
#include
#include
const int MAX_NODE = 100001;
const int M...
分类:
其他好文 时间:
2014-08-04 17:44:47
阅读次数:
213
定义:又称字典树,单词查找树或者前缀树,是一种用于快速检索的多叉树结构,如英文字母的字典树是一个26叉树,数字的字典树是一个10叉树。核心思想:是空间换时间.利用字符串的公共前缀来降低查询时间的开销以达到提高效率的目的。三个基本性质:1.根结点不包含字符,除根结点外每一个结点都只包含一个字符。2.从...
分类:
其他好文 时间:
2014-08-04 17:29:27
阅读次数:
239
嘻嘻,这个是自己的思想打的代码,独一无二,居然过了。首先构造字典树的节点,包括一个root,我把要保存的对应信息,如dog ogdoy中的dog保存在一个数组中,这个数组原本是一个单词结束标志,注意string的使用,我的代码内存快爆掉了,刚刚过的。#include#include#include#...
分类:
其他好文 时间:
2014-08-04 17:28:17
阅读次数:
228
字典树的应用题目,虽然照模板就能打出来,但是看着学长的代码,学会了sscanf的用法,sscanf(str,"%s%s",a,b)把str分成a和b两个字符串,分隔符为空格#include#include#include#include#includeusing namespace std;int ...
分类:
其他好文 时间:
2014-08-04 17:07:47
阅读次数:
173
Trie树,又称字符查找树、前缀树,主要用于字符匹配(详见http://en.wikipedia.org/wiki/Trie)。适合做关键词查找,比如查找文章中的关键字然后给他们加链接。 当然对脏词的过滤应用也是样,只是把替换连接的工作换成了替换字符。当前的代码还只是进行简单的替换,并没有做一些字符...
分类:
其他好文 时间:
2014-08-04 14:07:57
阅读次数:
270
翻译火星语,不过火星语也是使用英文单词的,就是把一个单词对应到另外一个单词。
可以使用map, 使用二分,方法很多。
不过最快的应该都是Trie解法了。
把火星语挂在Trie树中,然后在叶子节点增加一个string容器,装英语单词。
查找的时候,找到了出现在Trie中的火星语,就返回string就可以了。
#include
#include
#include
using n...
分类:
其他好文 时间:
2014-08-04 11:02:47
阅读次数:
234
使用Trie的insert函数,主要是要灵活修改search函数,使得q...
分类:
其他好文 时间:
2014-08-04 08:19:16
阅读次数:
240
赤裸裸的字典树...就来熟悉下字典树的 顺便注意下写的时候的各种小细节 touch me 1 #include 2 #include 3 using namespace std; 4 5 const int size = 26; 6 char str[size]; 7 typedef...
分类:
其他好文 时间:
2014-08-03 17:59:56
阅读次数:
168
poj 2513 Colored Stickshttp://poj.org/problem?id=2513题意:现在有几个木棒,每个木棒端点都着色,问:能否将它们排成一排,同时要满足相邻的的两端点颜色是一样的。trie+并查集+欧拉通路方法:要想排成一排,可以变向的理解为从一个图里找到一个欧拉通路(...
分类:
其他好文 时间:
2014-08-03 12:31:15
阅读次数:
254
题目是牛仔裤的意思,不过看不出题意和Blue Jeans有什么关系。
本题的数据是很水的,数据量小,故此可以使用非常暴力的方法过,也可以使用不那么暴力的KMP过。
这里使用更加不暴力的Trie后缀树过,这种解法就一点都不水了,呵呵。
思路:
1 建立所有字符串的后缀Trie树
2 增加额外信息,看每过路径是否是所有的字符串都经过了,如果是,那么就是合法的字符串了,查找最长的这样的字符串...
分类:
其他好文 时间:
2014-08-03 10:21:21
阅读次数:
239