字典树
文章平均质量分 74
Sleppypot
困难的路越走越容易,容易的路越走越难。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
动态建树之——一个单词是否在其他单词中以前缀的形式存在
题目:poj1056题意:判断一个单词是否在其他单词中以前缀的形式存在解答:建立字典树。在读到单词末尾的时候如果发现它已经有了,就返回false#include#include#include#include#includeusing namespace std;const int sonnum = 3;int ok = 1;struct Trie{ int原创 2016-08-15 14:38:06 · 518 阅读 · 0 评论 -
动态建树之——出现了几次的单词有几个
题目:poj2945题意:计算出现了1~n次的单词各有几次解答:字典树。建立之后dfs查找注意:mle:树的节点数目定义太大了。因为题目只有ACGT四个字母所以节点数定义为4就足够 map定义啥的不能写在函数外面#include#include#include#include#includeusing namespace std;const i原创 2016-08-15 14:33:43 · 355 阅读 · 0 评论 -
动态建树之——寻找最长公共前缀
题目:poj2001题意:寻找最长公共前缀解答:大概是最简单的字典树的建立、查找#include#include#include#include#includeconst int sonnum = 26,base = 'a';char a[10010][26];using namespace std;struct Trie//定义字典树的节点{ int num原创 2016-08-12 16:07:17 · 399 阅读 · 0 评论 -
动态建树之——查字典
题目:poj2503题意:给几个单词的意思,再给几个单词,查字典~解答:字典树咯(注意节点定义,每个节点定义一个字符数组)注意:空行停止!!!#include#include#include#includeusing namespace std;const int sonnum = 26,base = 'a';struct Trie{ int num;原创 2016-08-12 20:46:48 · 442 阅读 · 0 评论 -
动态建树之——寻找前缀是否是其他字符串
题目:hdu1671题意:寻找一个号码是否有前缀跟其他的号码一样解答:动态建字典树(在hdu上能过,在poj上不能过)注意:每次加入字符串的时候边加入要边判断!!! 每建完一个树都要释放内存!!!#include#include#include#include#includeusing namespace std;const int son原创 2016-08-16 21:03:42 · 409 阅读 · 0 评论 -
静态建树之——寻找前缀是否是其他字符串
题目:poj3630题意:寻找前缀是否是其他字符串解答:静态建树! 这个静态的树怎么建立的呢? 1、定义一个结构体作为节点,并且定义节点数组表示这课树上的所有节点。该结构体的一个变量terminal表示该节点是否是一个字符串的最后一个。另一个节点son[10]表示该节点的儿子们的指针。 2、建立一棵树,bo原创 2016-08-17 14:05:27 · 367 阅读 · 0 评论 -
动态建树加深搜之——模仿手机九键输入法
题目:poj1451题意:给你一个词语出现次数的表,然后给你一个输入的数字串,每一步输出它最可能出现的单词。没有了就输出一个东西。解答:建一个字典树,然后深度遍历这课树。每遍历一步都要记录下当前的字符串。最后输出。要记录当前位置最大值。如果该步没有更新过最大值说明这一步找不到字母了。 用一个str数组记录当前的串。用k记录搜到多长了。注意回溯!还有,不管更新不更新答原创 2016-08-23 19:16:11 · 1754 阅读 · 0 评论
分享