字典树题目总结



Trie 就好比维护了一个字典,可以在这个字典里插入删除字符串,也可以查询一个字符串是否在字典中。Trie的插入查找删除复杂度都是O(m)的,其中m为待插入串的长度。


Trie的原理是利用字符串集合中字符串的公共前缀来降低时间开销以达到提高效率的目的。


HDU1251-统计难题

最简单的字典树题,对于字典中的字符串插入后依次回答询问子串个数即可。

解题报告


HDU1305-Immediate Decodability

这题要求的是对于一个字典是否满足其中任何一个字符串都不是另一个字符串的子串,所以插入所有串后枚举每个串,看是否所有的串都符合子串个数为1(自身是自身的子串)即可。


HDU1671-Phone List

同上一题一样,不过因为有多组数据所以要用静态来存,不然会超空间。 

ideone:MyCode

map:http://fszxwfy.blog.163.com/blog/static/44019308201282484625551/


HDU2072-单词数

直接map亦可,练字典树的话也就是套模板,插入时看看是否本身isword,不是则ans++即可。

ideone:My_Code(map)


HDU1075-What Are You Talking About

这题就是翻译文章,所以把所有译文存到数组中,对每个单词插入进字典树,并在结点上增加译文在数组中位置的信息,输出时只需查找单词,若存在则输出译文,否组输出原文即可。

ideone:My_Code


HDU1247-Hat’s Words

用字典树插入所有单词后直接枚举每个单词的每个分割点,看分成的两个字符串是否都存在即可。


HDU1298-T9

题意是类似模拟实现手机上的智能输入法,询问每个按键后首选词是什么,方法可以把所有单次插入字典树后再dfs,也可以用两棵字典树,一棵插入单词的同时向另一棵数字字典树更新概率以及首选词位置即可。


ZOJ1109  
PKU1204  Word Puzzles

Poj2001

poj1056
Poj1451
Poj1816
Poj3630
Poj2513
Poj2408
Hdu2222
Hdu4057
Hdu4117
Uvalive 3942
Uvalive 4670

Ural 1158 Censored!

Ural 1269 不良单词过滤器


你可能感兴趣的:(字典树题目总结)