主要不是讲实现,是分享代码!
啥是字典树:
Trie树,即字典树,又称单词查找树或键树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:最大限度地减少无谓的字符串比较,查询效率比哈希表高。

Trie的核心思想是空间换时间。利用字符串的公共前缀来降低查询时间的开销以达到提高效率的目的。

它有3个基本性质:

根节点不包含字符,除根节点外每一个节点都只包含一个字符。
从根节点到某一节点,路径上经过的字符连接起来,为该节点对应的字符串。
每个节点的所有子节点包含的字符都不相同。
详细的讲解:https://blog.csdn.net/ts173383201/article/details/7858598

// 假设字符串由小写字母构成
int trie[SIZE][26], tot = 1;// Trie的插入
void insert(char* str) {int len = strlen(str), p = 1;for (int k = 0; k < len; k++) {int ch = str[k]-'a';if (trie[p][ch] == 0) trie[p][ch] = ++tot;p = trie[p][ch];}end[p] = true;
}// Trie的检索
bool search(char* str) {int len = strlen(str), p = 1;for (int k = 0; k < len; k++) {p = trie[p][str[k]-'a'];if (p == 0) return false;}return end[p];
}

『ACM--数据结构--字典树』信息竞赛进阶指南--Tire树相关推荐

  1. 『ACM-算法-Hash算法』信息竞赛进阶指南--字符串哈希

    字符串hash主要应用在: 寻找长度为n的主串S中的匹配串T(长度为m)出现的位置或次数的问题属于字符串匹配问题. 类似的还有KMP,我也有讲解. 原理: 将字符串中的每一个字母都看做是一个数字(例: ...

  2. 『ACM-数据结构』信息竞赛进阶指南--线段树

    我们主要是讲代码实现,不是讲基本原理! 什么是线段树? 线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点. 使用线段树可以快速的查找某一个节点 ...

  3. 『ACM-算法-ST算法』信息竞赛进阶指南--区间最值问题的ST算法

    借助倍增和动态规划可以实现O(1)的时间复杂度的查询 预处理: ①区间DP 转移方程 f[i][j] = min(MAX同理)(f[i][j - 1],f[i + ][j - 1]) f[i][j]表 ...

  4. 『ACM-算法-枚举法』信息竞赛进阶指南--枚举方法

    你以为枚举是一个一个的找? 还真是 你以为枚举都是for循环? 还真是 但你真的会枚举吗?组合型枚举,指数型枚举,排列型枚举?难道你只会线形枚举? 你可太菜了! // 递归实现指数型枚举 vector ...

  5. 『ACM-算法-数据结构』信息竞赛进阶指南--树状数组 (模板)

    写在前面: 我们是主要是讲算法模板,即实现的代码,并不讲实现的原理 什么是树状数组? 树状数组(Binary Indexed Tree(B.I.T), Fenwick Tree)是一个查询和修改复杂度 ...

  6. 『ACM--算法--KMP』信息竞赛进阶指南--KMP算法(模板)

    简介: KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt提出的,因此人们称它为克努特-莫里斯-普拉特操作(简称KMP算法).KMP算法的核心是利用匹 ...

  7. 『ACM-算法-离散化』信息竞赛进阶指南--离散化

    数据离散化是一个非常重要的思想. 为什么要离散化? 当以权值为下标的时候,有时候值太大,存不下. 所以把要离散化的每一个数组里面的数映射到另一个值小一点的数组里面去. 打个比方,某个题目告诉你有104 ...

  8. 『ACM-算法-二分法』信息竞赛进阶指南--二分法

    写在前面:我们主要还是分享算法的模板,而不是去刨析算法的原理! 定义: 二分答案是指在答案具有单调性的前提下,利用二分的思想枚举答案,将求解问题转化为验证结果. 流程: 首先需要估计答案的上下界,然后 ...

  9. 『ACM-算法-二分法』算法竞赛进阶指南--在单调递增序列a中查找大于等于X的数中最小的一个,即X或X的后继

    写在前面:我们主要还是分享算法的模板,而不是去刨析算法的原理! 定义: 二分答案是指在答案具有单调性的前提下,利用二分的思想枚举答案,将求解问题转化为验证结果. 流程: 首先需要估计答案的上下界,然后 ...

最新文章

  1. ssm过滤器可以只过滤html吗,SSM登陆验证之过滤器实现
  2. 李德毅院士:探索新一代人工智能产业发展
  3. python 打包egg_将Python程序打包到egg或WHL安装包或exe包中,把,python,成,或者,whl
  4. Dell R740服务器添加GPU卡
  5. VC++ 访问数据库实例详解图解
  6. C++ Primer 5th笔记(chap 11)关联容器操作
  7. boost库 bind/function的使用
  8. 阿里云科学家入选计算机顶会 HPCA 名人堂,他是什么来头?
  9. 有1000阶的台阶,一个人每次只能走一阶或两阶,用一个递归算法求出共有多少种走法。...
  10. select非group by字段的方法
  11. asp.net mvc bundle中数组超出索引
  12. c语言中存储点分十进制IP地址
  13. Opencv,imread()读取BGR格式文件转换与RGB格式的相互转换
  14. arnold ass standin 代理模型批量查询 与替换工具发布1.0
  15. 成为一棵大树必备的6个条件
  16. python选择日期控件_【Python】python 日期操作
  17. UserBehavior用户行为分析
  18. python compare()_Python Decimal compare()用法及代码示例
  19. 【亲测可用】云之道知识付费v2独立版3.0.1全开源+前后端源码
  20. 社区团购讲堂之精耕细作的互联网下半场,社区团购将改变实体商超格局?

热门文章

  1. 计算机四年级下册教案泰山版,泰山版信息技术四年级下册4、制作作息时间表教案设计...
  2. php 使用webservice_PHP中如何调用webservice的实例参考
  3. matlab火箭升空问题,困扰火箭的三大问题终于要解决了!球迷:我都要膨胀了!...
  4. Spring Security认证过程
  5. 使用 OAuth2-Server-php 搭建 OAuth2 Server
  6. 利用python脚本(re)抓取美空mm图片
  7. bootstrap去掉表格边框
  8. Linux使用错误小结(CentOS)- yum更新软件失败
  9. Android广播机制:Broadcast
  10. 备份到云端,准备好了吗?