字符串处理-字典树
你迎哥哥
这个作者很懒,什么都没留下…
展开
-
HDU 1251 统计难题
题目链接:HDUOJ 1251算法分析:字典树裸题。下面是AC代码:#include#include#includeusing namespace std;const int maxn=26;struct node{ int Count; node * next[maxn]; node() { Count=0;原创 2015-05-21 18:32:26 · 456 阅读 · 0 评论 -
HDU 1247 Hat’s Words(字典树简单应用)
题目链接题意很清楚:就是给出若干个单词,找出其中能够由其它两个单词连接组合而成的单词。比如上面sample中的"ahat"能够由"a"和"hat"拼凑而成,"hatword"="hat"+"word".只要将这些字符串插入到字典树中去,并设置结束标记,并用字符串数组保存起来。然后再依次把每个字符串放到字典树中查询即可。AC代码如下:#include#includeusing n原创 2015-08-14 10:17:55 · 421 阅读 · 0 评论 -
HDU 2846 Repository(字典树变形题)
题目链接大意:给定你一些商品的信息save(字符串),然后输入需要查询的字符串str,如果存在一个字符串save使得str是save的子串。 思路:字典树的变形,如存在"abcd",则"bcd", "cd", "d",都需要插入字典树中。如果存在"abab"的话,有可能"ab"会重复计数,所以需要一个特定的序列号来区分是否是同一序列中的子串。我们可以定义一个value,若val原创 2015-08-14 10:20:13 · 480 阅读 · 0 评论 -
HDU 1075 What Are You Talking About(字典树模板题)
题目链接问题:输入一段英文,对照给的单词的映射,输出映射后的字符串思路:这是字典树水题,只要对插入字典书中的单词标号,然后再根据标号的单词去找相对应的单词就好..............最需要注意的是,hello插入字典树后,如果查找hell应该是返回0的。这里需要对单词末尾进行标记................AC代码如下:#include#include#in原创 2015-08-14 10:23:08 · 375 阅读 · 0 评论 -
HDU 1800 Flying to the Mars(字典树水题)
题意:士兵要学骑扫帚。每个士兵有一个level,level高的能在同一把扫帚上教level低的怎么骑。一个人最多有一个老师,一个学生。也可以没有。给n个士兵的level值,问最少需要多少扫帚。mark:显然就是找出现次数最多的数字的次数。但因为数字长度多达30个字符,因此long long都存不下,用字符串。wa了一次,忘记处理前导0。AC代码:#include#incl原创 2015-08-14 10:26:08 · 340 阅读 · 0 评论 -
HDU 1671 Phone List(字典树寻找前缀)
题目意思很清楚:就是判断输入的电话号码中是否有号码是其他号码的前缀,很显然要用到字典树。根据分析可知: 如果字符串Xn=X1X2....Xn是字符串Ym=Y1Y2....Ym的前缀,有在插入的时候有两种情况:Xn在Yn之前插入,Xn在Yn之后插入。 1)如果Xn在Yn之前插入,那么在插入Yn的时候必然经过Xn的路径,此时可以根据判断在这条路径上是否已经有结点被标记已经构成完成的字符串序原创 2015-08-14 10:28:30 · 343 阅读 · 0 评论 -
HDU 4287 Intelligent IME (map水题或字典树+DFS)
题目大意:手机键盘中与数字2相对应的字母有a,b,c;3相对应的字母有d,e,f。给出一些数字串如34,和一些小写字母串。求小写字母对应的数字串出现的次数。字符串abc对应的数字串是111,dh对应的数字串是34。则小写字符串中111出现一次,34出现一次。程序中也用到简单的hash映射。#include#include#include#include#define LL原创 2015-08-14 10:30:18 · 621 阅读 · 0 评论 -
HDU 4099 Revenge of Fibonacci(大数加法+字典树)
题意:给出斐波那契数列的前k位,k不超过40,找出最小的正整数n,满足F(n)的前k位与给定数的前k位相同,斐波那契数列的项数不超过100000。 解析:本题可以分为两步:第一步就是预处理出100000项斐波那契数列的前40位,插入到字典树中。第二步就是查询匹配求最小的n。对于第一步,我们可以把斐波那契数列精确到50多位,然后只存40位即可,这样就防止进位的误差。在斐波那契数列原创 2015-08-14 10:35:59 · 346 阅读 · 0 评论 -
HDU 1305 Immediate Decodability(与1671类似)
题意:在多个字符串里寻找,若他们至少有一个串是另一个串的前缀,则按题目要求输出思路:建立字典树,因为只有0 1两数,数组开2大就行,判断是前缀的方法:每次插入一个字符串,在字典树中查询,若当到达已经存在了的字符串,即cur->cnt==1 ,也就是插入字符串的前缀,或者在字典树中能够找到插入的字符串#include#include#include#include#include#原创 2015-08-14 10:37:43 · 320 阅读 · 0 评论