
字典树
文章平均质量分 72
oj
Ypuyu
Ypuyu
展开
-
[字典树+模板] Trie树模板
文章目录0. 前言1. Trie 0. 前言 Trie:高效地存储和查找字符串集合的数据结构,也称字典树、前缀树。 数据一定限制了字母的种类,大多都是小写字母、大写字母等等,一般都是 26 个,或者 56 个。 1. Trie 这里的 son[N][26] 相当于链表中的 ne[N],存放的是下一个节点的位置,通过 idx++ 的操作,保证了不同的 idx 值对应不同的节点。这个和数组模拟单链表、双链表的思路一致,我的之前博文并没有总结,后续做图论、模拟堆等还会大量遇见,需要转变下思维,理解这种数据存储原创 2020-10-22 10:47:35 · 320 阅读 · 0 评论 -
[M字典树] lc676. 实现一个魔法字典(字典树+树上dfs+好题)
需要注意一个点,当字符串完全出现了也不算做有效答案哈,必须要改变一个字符才可以。所以第一遍写的答案就没有通过…关键是:如何体现恰好有几个字母不同这个条件?原创 2024-08-12 01:53:27 · 439 阅读 · 0 评论 -
[H字典树] lc1938. 查询最大基因差(trie总结+dfs离线搜索+离线处理+周赛250_4)
文章目录1. 题目来源2. 题目解析 1. 题目来源 链接:1938. 查询最大基因差 相关题目: 首先 [Trie] lc421. 数组中两个数的最大异或值(Trie+Trie的不同写法+算法对比) [字典树] 最大异或对(trie+贪心) 进阶一,务必掌握:力扣上与其相关的问题,离线查询。[H字典树] lc1707. 与数组中元素的最大异或值(trie+知识理解+离线处理) 进阶二,务必掌握:记录节点数,支持增加、删除 trie 中的节点,离线查询必备。[字典树] aw3485. 最大异或和(tri原创 2021-07-19 01:02:39 · 182 阅读 · 0 评论 -
[H字典树] lc1707. 与数组中元素的最大异或值(trie+知识理解+离线处理)
文章目录1. 题目来源2. 题目解析 1. 题目来源 链接:810. 黑板异或游戏 相关题目: 首先 [Trie] lc421. 数组中两个数的最大异或值(Trie+Trie的不同写法+算法对比) [字典树] 最大异或对(trie+贪心) 2. 题目解析 没啥难度,整体思想和 [Trie] lc421. 数组中两个数的最大异或值(Trie+Trie的不同写法+算法对比) 一样,加了离线处理罢了。 trie 的经典应用,用来解决最大异或值问题。这里需要根据查询顺序返回答案,很明显的离线处理,但是我一开原创 2021-05-23 12:18:07 · 200 阅读 · 1 评论 -
[MTrie] lc421. 数组中两个数的最大异或值(Trie+Trie的不同写法+算法对比)
文章目录1. 题目来源2. 题目解析 1. 题目来源 链接:421. 数组中两个数的最大异或值 相关链接:[字典树] 最大异或对(trie+贪心) 2. 题目解析 很经典的一道题,trie 的经典应用。在此复习一下 trie 的不同写法。 时间复杂度:O(nlogC)O(nlogC)O(nlogC) 空间复杂度:O(n)O(n)O(n) 代码: const int N = 2e4+5, M = N * 32; int son[M][2], idx; class Solution { public原创 2021-05-16 18:03:31 · 197 阅读 · 0 评论 -
[字典树] aw3485. 最大异或和(trie变种+贪心+前缀和+滑动窗口+美团2021)
文章目录1. 题目来源2. 题目解析 1. 题目来源 链接:3485. 最大异或和 相关题目:[字典树] 最大异或对(trie+贪心) 2. 题目解析 trie 的经典应用。 三种区分度: 三重暴力,维护起点 i、终点 j、循环 [i, j] 区间求异或值即可,过掉 n <= 100 的数据,过 20%。 两重暴力,优化上述做法。固定起点,向右枚举终点,边枚举边计算当前区间的异或总和,这样就不需要在重复计算区间内的异或和了,优化掉一个 n,过掉 n<=1000 的数据,过 50%。 最终做法原创 2021-05-10 23:53:11 · 330 阅读 · 0 评论 -
[字典树] 最大异或对(trie+贪心)
文章目录1. trie+贪心2. 简单优化 1. trie+贪心 Biu 很明显,暴力查找双重循环,时间复杂度 O(n2)O(n^2)O(n2),大约 101010^{10}1010 次计算肯定超时了。可以利用 trie 来存所有数的数值,然后在进行查找的时候尽量选择当前位相异的路径走下去就行了,这也是一个贪心的思路,从高位开始,尽量选择相异的位 (异或为1) 的路径,所得到的异或结果肯定是最大的。 注意: trie 中所有的节点个数应该是 105∗3210^5 * 32105∗32 开 4e64e^6原创 2020-10-22 22:49:26 · 510 阅读 · 0 评论