字典树专题【完结】

简介: 第一题 hdu 1075 What Are You Talking About 点击打开hdu1075 题意:给定一个映射表的关系,给定每个单词的对应的映射的单词。


第一题 hdu 1075 What Are You Talking About

点击打开hdu1075

题意:给定一个映射表的关系,给定每个单词的对应的映射的单词。现在给定一段字符串,要求如果单词能够翻译就进行翻译,否则原样输出,但是注意所有的\n,\r,空格以及所有的标点符号都是不翻译的。

思路:先对映射表的单词建立字典树,每个单词的尾节点标记这个单词所映射的单词的下标,那么对于给定的字符串,我们只要把所有的单词进行解析去字典树中查找即可。

点击查看代码


第二题 hdu 1251 统计难题

点击打开hdu1251

题意:给点一序列的字符串,再给你一些单词,问以这个单词为前缀的字符串的个数,注意本身也是自己的前缀

思路:把给定的字符串建立一棵字典树,每一个节点保存的是当前节点为结尾的字符串出现的次数,那么对于给定的单词我们只要去查找字典树即可

点击查看代码


第三题 hdu 1671 Phone List

点击打开hdu 1671

题意:给定n个电话号码串,问这n个电话号码串中是否存在某一串是其它串的前缀,如果存在输出NO,否则YES

思路:把这n个电话号码串建立成字典树,在插入的时候我们直接判断当前插入的字符串是不是其它串的前缀或者其它串是不是这个串的前缀即可

点击查看代码


第四题 hdu 1247 Hat's Word

点击打开hdu 1247

题意:给定一序列的单词按照字典序输入,要求某些单词是由这其中的其它两个单词拼接而成的单词按照字典序输出

思路:把输入的单词建立成一棵字典树,然后顺序枚举这n个单词并判断即可

点击打开查看代码


第五题 hdu 1800 Flying to the Mars

点击打开hdu 1800

题意:有n个士兵每个人有一个能力值d,现在士兵要去学习如何飞到火星。规定如下,能力值大的可以教能力值小的并且每个人只能由一个人来教,而且每个人只能够教一个人。规定一起学习的人的书本是一样的,问最少需要几本书

思路:根据题目的意思是我们可以知道最终要求的就是有几个递减的序列,也就是找到最多重复的值。比如2 3 4 3 4 就是两个递减序列4 3 2 和 4 3。那么我们只要对这些的值插入到字典树即可,利用字典树的性质找到最多重复的个数。但是要注意前缀,在字典树中001和01是不同的,但是我们应该要把前缀给去掉。

点击查看代码


第六题 hdu 1298 T9

点击打开链接hdu 1298

题意:题目说的是在那遥远的星球有一款叫诺基亚的手机,键盘采用题目的图的样式。给定n个单词的出现的概率,规定是相加的比如hell出现为4,hello概率为3则hell的概率为7。现在给定m次输入的格式,根据概率问每一次输入能够得到的字符串是什么

思路:我们把n个单词建立成一棵字典树,然后我们对每一次的输入进行搜索,因为一个数字对应有好几种的可能值,然后把概率最大的字符串保存为ans即可

点击查看代码


第七题 zoj 1109 Language of FatMouse

点击打开zoj 1190

题意:给定一序列的映射关系,然后再给定一些单词,要求如果该单词有映射的单词就输出映射的单词,否则输出"eh"

思路:把给定的映射关系的中的单词建立成字典树,然后输入单词的时候查找即可。但是这一题不能够利用静态分配的思想,应该要利用动态的分配

点击查看代码

 


 


目录
相关文章
|
存储 关系型数据库 数据库
BTree与B+Tree图文详解
B树与B+树区别
2284 0
BTree与B+Tree图文详解
|
7月前
|
存储 缓存 Java
重构一个类,JVM竟省下2.9G内存?
通过重构核心类,将 `HashMap<Long, HashSet<String>>` 优化为 `Long2ObjectOpenHashMap<int[]>`,结合数据分布特征与紧凑存储,JVM 堆内存从 3.13GB 降至 211MB,降幅达 94%,验证了高效数据结构在海量场景下的巨大价值。
725 24
重构一个类,JVM竟省下2.9G内存?
|
JSON 自然语言处理 Linux
linux命令—tree
tree是一款强大的Linux命令行工具,用于以树状结构递归展示目录和文件,直观呈现层级关系。支持多种功能,如过滤、排序、权限显示及格式化输出等。安装方法因系统而异常用场景包括:基础用法(显示当前或指定目录结构)、核心参数应用(如层级控制-L、隐藏文件显示-a、完整路径输出-f)以及进阶操作(如磁盘空间分析--du、结合grep过滤内容、生成JSON格式列表-J等)。此外,还可生成网站目录结构图并导出为HTML文件。注意事项:使用Tab键补全路径避免错误;超大目录建议限制遍历层数;脚本中推荐禁用统计信息以优化性能。更多详情可查阅手册mantree。
1115 143
linux命令—tree
|
9月前
|
缓存 监控 Linux
Linux内存问题排查命令详解
Linux服务器卡顿?可能是内存问题。掌握free、vmstat、sar三大命令,快速排查内存使用情况。free查看实时内存,vmstat诊断系统整体性能瓶颈,sar实现长期监控,三者结合,高效定位并解决内存问题。
878 0
Linux内存问题排查命令详解
|
网络协议 网络安全 网络虚拟化
路由器详细讲解
路由器是连接不同网络并转发数据包的关键设备,工作在OSI模型第三层(网络层)。它通过路由表选择最佳路径,支持数据转发、NAT转换、防火墙保护等功能。路由器分为家用、商用和工业级,各有针对性的性能与功能。其配置包括硬件连接、登录管理界面及网络、无线、安全等设置,选购时需关注处理能力、无线速率、端口速率和功能需求等关键指标。
1727 22
|
分布式计算 监控 大数据
大数据-131 - Flink CEP 案例:检测交易活跃用户、超时未交付
大数据-131 - Flink CEP 案例:检测交易活跃用户、超时未交付
371 0
|
机器学习/深度学习 人工智能 搜索推荐
技术革新下的培训新趋势:案例解析
从最初的“试试看”,到如今的“非做不可”,企业培训已经成为央国企和上市公司不可或缺的战略环节。无论是AI与大模型的赋能,DeepSeek,还是具身智能、智算技术和数据科学的实战应用,这些课程都在为企业打开新的可能性。
|
存储 数据库 索引
B-Tree和B+Tree的区别及各自的优势
B-Tree和B+Tree的区别及各自的优势
1261 0
|
分布式计算 监控 大数据
大数据-129 - Flink CEP 详解 Complex Event Processing - 复杂事件处理
大数据-129 - Flink CEP 详解 Complex Event Processing - 复杂事件处理
491 0
|
SQL 消息中间件 分布式计算
大数据-130 - Flink CEP 详解 - CEP开发流程 与 案例实践:恶意登录检测实现
大数据-130 - Flink CEP 详解 - CEP开发流程 与 案例实践:恶意登录检测实现
486 0