给一个n,一个目标串,之后n行每行一个字符串和一个对应的权值。求,在n个给定的串中选出若干个能组成目标串(每个串可以用多次),得到的权值和最大是多少。
(1<=n<=1000) and X (the length of goal is not bigger than 10000),n个串每个长度不超过30...
分类:
其他好文 时间:
2014-08-06 14:54:41
阅读次数:
284
题意:输入 语言A及翻译为语言B的词典,之后再输入语言B的单词,判断是否能从词典中找到,
若能找到,将其翻译为语言A,否则输出“eh”.
思路:这题肯定得先将词典对应语言存起来,但是如果直接暴力找输入的单词是否出现过,必然会TLE
因为单词都是一对一的关系,可以用map实现
当然,trie树是用空间换时间,对于字符串的查找,在时间上有着相当的优势,因此也可以用trie树
注:sscanf函数,从一个字符串中读进与指定格式相符的数据....
分类:
其他好文 时间:
2014-08-05 19:26:00
阅读次数:
232
typedef struct node{ int count; struct node *next[MAX];}Trie;Trie *Newnode()//建立结点&初始化a{ int i; Trie *T; T = (Trie *)malloc(sizeof(Trie...
分类:
其他好文 时间:
2014-08-05 18:12:09
阅读次数:
201
本题乍看像是线段树之类的区间操作,不过因为只是需要查找ip的前缀,故此其实是使用Trie来做。
这里的Trie使用到了Delete函数,这是个Trie函数中最难的函数了,当然要使用数组记录的方法水掉,也是可以的。这里不水,给出delete函数。
考点难点:
1 Trie的操作函数的灵活运用,主要难点是delete函数的灵活运用
2 在叶子节点所有的group id, 删除的时候要注意,不...
分类:
其他好文 时间:
2014-08-05 11:13:09
阅读次数:
296
基本上是标准的寻找前缀的问题,只需要insert和search函数就可以了。
我这里主要是修改一下n的记录方法,这里的n代表的不是叶子节点的标志,而是有多少单词经过了这条路径的标志。
然后是查找需要查找的前缀单词,如果没有找到,就返回0,表示没有单词以这个前缀单词为前缀,如果找到,直接返回n就是答案了。因为有n个单词经过了这条路径。
查找效率是常数。
使用静态分配空间的办法。
#...
分类:
其他好文 时间:
2014-08-04 21:40:28
阅读次数:
239
定义:又称字典树,单词查找树或者前缀树,是一种用于快速检索的多叉树结构,
如英文字母的字典树是一个26叉树,数字的字典树是一个10叉树。
核心思想:是空间换时间.利用字符串的公共前缀来降低查询时间的开销以达到提高效率的目的。
三个基本性质:
1. 根结点不包含字符,除根结点外每一个结点都只包含一个字符。
2. 从根结点到某一结点,路径上经过的字符连接起来,为该结点对应...
分类:
其他好文 时间:
2014-08-04 17:46:47
阅读次数:
231
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
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