转自:
关于字典树请见:,以下是我最近做的一些关于字典树的题目,来源是HDU的一些经典题。
:最简单的字典树题,对于字典中的字符串插入后依次回答询问子串个数即可,模板即为此题。
:这题要求的是对于一个字典是否满足其中任何一个字符串都不是另一个字符串的子串,所以插入所有串后枚举每个串,看是否所有的串都符合子串个数为1(自身是自身的子串)即可。
:同上一题一样,不过因为有多组数据所以要用静态来存,不然会超空间。
:直接map亦可,练字典树的话也就是套模板,插入时看看是否本身isword,不是则ans++即可。
:这题就是翻译文章,所以把所有译文存到数组中,对每个单词插入进字典树,并在结点上增加译文在数组中位置的信息,输出时只需查找单词,若存在则输出译文,否组输出原文即可。
:用字典树插入所有单词后直接枚举每个单词的每个分割点,看分成的两个字符串是否都存在即可。
:题意是类似模拟实现手机上的智能输入法,询问每个按键后首选词是什么,方法可以把所有单次插入字典树后再dfs,也可以用两棵字典树,一棵插入单词的同时向另一棵数字字典树更新概率以及首选词位置即可。
:题意为模拟一个搜索框,输入某个单词后输出以该单词为前缀的前8个(或小于8个)单词。所以将所有单词插入字典树后dfs询问的前缀,再从前缀开始dfs得出前8个单词即可。