- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ACM程序设计 杭州电子科技大学 刘春英 acm@hdu.edu.cn 集训队讲座(二) 字典树(Trie) 导引问题 (HDOJ-1251) Ignatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己的前缀). 初步分析(Brute-force) 什么是字典树? 字典树:又称为Trie,是一种用于快速检索的多叉树结构。Trie把要查找的关键词看作一个字符序列,并根据构成关键词字符的先后顺序构造用于检索的树结构;一棵m度的Trie树或者为空,或者由m棵m度的Trie树构成。 Trie的图示 特点: 利用串的公共前缀-节约内存 根结点不包含任何字母 其余结点仅包含一个字母(非元素) 每个结点的子节点包含字母不同 Trie的查找(最主要的操作) (1)在trie树上进行检索总是始于根结点。 (2)取得要查找关键词的第一个字母,并根据该字母选择对应的子树并转到该子树继续进行检索。 (3)在(5)在某个结点处,关相应的子树上,取得要查找关键词的第二个字母,并进一步选择对应的子树进行检索。 (4) ... 键词的所有字母已被取出,则读取附在该结点上的信息,即完成查找。 Trie的数据结构定义 struct dictree { dictree *child[26]; int n; //根据需要变化 }; dictree *root; 查找效率分析 在trie树中查找一个关键字的时间和树中包含的结点数无关,而取决于组成关键字的字符数。(对比:二叉查找树的查找时间和树中的结点数有关O(log2n)。) 如果要查找的关键字可以分解成字符序列且不是很长,利用trie树查找速度优于二叉查找树。 若关键字长度最大是5,则利用trie树,利用5次比较可以从265可能的关键字中检索出指定的关键字。而利用二叉查找树至少要进行log2265=23.5次比较。 示例—(HDOJ-1075) What Are You Talking About 题目描述:Ignatius is so lucky that he met a Martian yesterday. But he didnt know the language the Martians use. The Martian gives him a history book of Mars and a dictionary when it leaves. Now Ignatius want to translate the history book into English. Can you help him? 样本数据(HDOJ-1075) Sample Input START from fiwo hello difh mars riwosf earth fnnvk like fiiwj END START difh, im fiwo riwosf. i fiiwj fnnvk! END 题目分析(HDOJ-1075) 特点?数据量大 主要任务?查找单词 解决方法?字典树 字典树结构(除指针)?单词信息(英文) 额外提醒?字符串操作的熟练应用 其他问题?NO~ 相关练习 HDOJ-1075 What Are You Talking About HDOJ-1251 统计难题 HDOJ-1298 T9 HDOJ-1800 Flying to the Mars ZOJ-1109 Language of FatMouse 附:参考源码(HDOJ-1251) #include stdio.h #include string.h #include stdlib.h struct dictree { struct dictree *child[26]; int n; }; struct dictree *root; void insert (char *source) { int len,i,j; struct dictree *current,*newnode; len=strlen(source); if(len==0) return; current=root; for(i=0;ilen;i++) { if(current-child[source[i]-a]!=0)
您可能关注的文档
- ABS故障排除 教学课件1.ppt
- AB-PLC培训.ppt
- AB料填筑工艺试验总结方案.doc
- AB门介绍3.20.ppt
- 9给树爷爷画像.ppt
- Abaqus6.10经典从入门到精通培训教程PPT.ppt
- ACE-CPR技巧培训.ppt
- Access使用窗体设计视图创建窗体及添加按钮.ppt
- Ac Meter 操作说明及烧录校正方式.doc
- ACER 4740G 拆机教程.doc
- GB/T 14598.2-2025量度继电器和保护装置 第1部分:通用要求.pdf
- 中国国家标准 GB/T 14598.2-2025量度继电器和保护装置 第1部分:通用要求.pdf
- 《GB/T 14598.2-2025量度继电器和保护装置 第1部分:通用要求》.pdf
- 《GB/T 14598.26-2025量度继电器和保护装置 第26部分:电磁兼容要求》.pdf
- GB/T 14598.26-2025量度继电器和保护装置 第26部分:电磁兼容要求.pdf
- 中国国家标准 GB/T 14598.26-2025量度继电器和保护装置 第26部分:电磁兼容要求.pdf
- 《GB/T 19024-2025质量管理体系 面向质量结果的组织管理 实现财务和经济效益的指南》.pdf
- 中国国家标准 GB/T 19024-2025质量管理体系 面向质量结果的组织管理 实现财务和经济效益的指南.pdf
- GB/T 19024-2025质量管理体系 面向质量结果的组织管理 实现财务和经济效益的指南.pdf
- 中国国家标准 GB/T 20441.8-2025电声学 测量传声器 第8部分:测定工作标准传声器自由场灵敏度的比较法.pdf
文档评论(0)