字典树
文章平均质量分 75
捡石子的小孩
这个作者很懒,什么都没留下…
展开
-
Phone List hdu1671
题目意思为判断某单词是否以另一单词为前缀,这是字典树的典型应用,需要注意的部分已在代码部分注释。 #include #include #include using namespace std; struct node { bool isTail; node *next[10]; }memory[1000000],*root; int cur; node *build_原创 2012-10-20 10:59:29 · 661 阅读 · 0 评论 -
What Are You Talking About hdu1075
这题的字符串处理真纠结,搞得我都想吐了,晕,其它的好像没什么好说的,就是个简单的字典树了。 不过通过做这道题,我对scanf和gets的理解更加透彻了,scanf读取字符串时,是从第一的非空格的字母开始读,再次遇到空格或'\n'时结束,它不会处理掉'\r';而gets则按行读(连空格也一起读),遇到'\r'时将其转换为'\0'然后结束。 #include #include #include原创 2012-10-20 14:07:39 · 795 阅读 · 0 评论 -
统计难题 hdu1251
字典树的纯模板题。初学字典树,纪念一下下 #include #include #include using namespace std; struct node { int count;//记录当前单词出现的次数 node *next[26]; }; node *root;//根节点,不存储信息 node * build_node()//新建节点 { no原创 2012-10-19 18:57:19 · 830 阅读 · 0 评论 -
Hat’s Words hdu1247 字典树+搜索
先把单词用字典树存储,再依次对每个单词枚举拆分点,看拆分后的两个单词是否都有。 #include #include #include using namespace std; struct node { bool isTail; node *next[26]; }memory[1000000],*root; int cur; char word[50005][15];原创 2012-10-20 19:07:58 · 1083 阅读 · 0 评论 -
Blue Jeans poj3080
字典树!我的做法是将前n-1个串分成若干子串(长度大于2),然后存入字典树,再将第n串也分成若干子串,进行匹配。 #include #include #include #include using namespace std; struct node { int count;//记录子串的数目 int cur;//记录当前子串来自哪一原串(防止同一原串的相同子串重复记录)原创 2012-10-31 20:54:49 · 648 阅读 · 0 评论 -
Spell checker poj1035
字典树的题目。首先根据输入的单词建一棵字典树。然后每输入一个单词,就查询一次,若查到了,则结束。否则,则根据题目的意思,对该单词做三种操作(插入,删除,替换),然后再查询一次,若查到了则记录下来,最后排序输出。 再说下本题要注意的问题吧,对于插入和删除操作,可能会有重复的。比如字典树中已有单词acm,现在输入单词acmm,显然删除第一个m和第二个m得到的单词是一样的,所以这就导致重复,因此对最后原创 2012-10-25 14:43:35 · 738 阅读 · 0 评论