• 2024-07-02可持久化 0/1 Trie
    可持久化可以维护数据结构的历史版本。对于一个字典树,如果更改一个元素,暴力做法是复制一个树,让后在树上修改。其实,这样是有很多个一定一样的点是浪费的,真正被修改的是\(\log_2n\)个点,\(2\log_2n\)条边。优点:大大减低时间复杂度,还支持在线做。缺点:不能传懒
  • 2024-07-01数据结构 —— Trie 树
    一个笔记需要一张头图:Trie树是一种维护(广义)字符串(我们认为广义字符串是一切可以被线性描述的类型,例如,我们认为整数(无论是哪种进制下)是一种广义字符串;有理数也是一种广义字符串(使用无限循环小数方式表述,可能需要一些特殊处理。))的数据结构,其特征为适于处理前缀类型或寻找类型(i.e.
  • 2024-06-24[题解]CF1223F Stack Exterminable Arrays
    CCF出的原题观摩一下。思路首先可以用一个Trie来维护。在这里对本文中的一些变量做一下说明。\(p\)表示当前维护的Trie中,指向的元素编号。\(t_i\)表示在Trie中编号为\(i\)的元素在原序列中的值。\(f_i\)表示在Trie中编号为\(i\)的元素在Trie中的父节点。
  • 2024-06-22Trie树
    目录一、概述二、节点设计三、插入字符串 四、判断前缀五、删除字符串一、概述Trie树,即字典树,又称前缀树、单词查找树或键树。Trie树的典型应用是保存大量的字符串(但不限于字符串),并快速排序、统计、查找字符串或前缀。Trie树中的根节点表示空字符串,结点表示字符串
  • 2024-06-22可持久化Trie
    更好的体验带注释的代码开始理解可持久化,这里因为是acwing打卡,可以放图片了有可能会用图片,尽量打字可持久化trie,就是一个trie树但是可以通过不同的开头(root),变成每个历史状态这里就用到上面的图片了,每次更新trie树,这条新加入的链一定要
  • 2024-06-22[字符串专题] KMP、Hash、Trie
    KMP核心思想:在每次失配时,不是把p串往后移一位,而是把p串往后移动至下一次可以和前面部分匹配的位置,这样就可以跳过大多数的失配步骤。而每次p串移动的步数就是通过查找next数组确定的。KMP主要分两步:求next数组、匹配字符串,其难点在于如何求next数组for(inti=1,
  • 2024-06-20Living-Dream 系列笔记 第60期
    \(\mathcal{TRIE}\):用于存储和查询字符串的树形结构,相同前缀的字符串共用节点,每个节点存储一个字符。操作:insert:单次\(O(len)\)search:单次\(O(len)\)性质\(1\):若一个字符串\(T\)作为前缀,则包含\(T\)的所有字符串的“终止节点”一定在以\(T\)的“终止节点”为根
  • 2024-06-19GDCPC 2024 部分题解
    老年人过来对着会的题口胡几发B.腊肠披萨 题意翻译:给你n个小写字母串,求所有小写字母串两两之间的最长公共前缀的乘方和,对一个任意数取模。比较显然的,看到多串公共前缀直接建Trie统计贡献。建好之后对每个串在Trie上走,每走一步加上当前子树内串个数和父子树内串个数之差,就能
  • 2024-06-11AC自动机
    Trie树Trie树又称字典树、单词查找树,是一种能够高效存储和查找字符串合集的数据结构。可以快速地在集合中查询某个字符串。Trie树的本质就是利用字符串之间的公共前缀,将重复的前缀合并在一起。举个例子,有五个字符串,code,cook,five,file,fat,组织成字典树就是下面这个样子:性质:
  • 2024-06-09[AIGC] 字典树Trie树详解及其Java实现
    字典树,也称为Trie树或前缀树,是一种常见的搜索数据结构,广泛应用于字符串查询的场景中,比如网络词典的实现,或者是搜索引擎中词语的自动补全。文章目录Trie树的概念Trie树特性Trie树的操作插入操作查询操作Java实现Trie树Trie树的概念Trie树是一种特别的n叉树模型
  • 2024-06-07Codeforces Round 950 (Div. 3)G. Yasya and the Mysterious Tree(字典树处理区间异或值)
    Problem-G-Codeforces存个字典树板子。1#include<bits/stdc++.h>23usingi64=longlong;45constexprintN=1E7;67inttrie[N][2];8intcnt[N][2];910inttot=0;11intnewNode(){12intx=++tot;13trie
  • 2024-06-05Trie字典树和AC自动机 (题目&答案)
    A.三年二班的投票题目描述三年级二班已经完成了竞选班长的投票,已知一共有n张投票,每张投票上写了一位同学的名字。投票统计结束后,张老师随意问一个同学的名字,请编程快速检索出,该同学共有几票。输入第一行读入一个整数n,代表产生了n张投票。(n≤)接下来n行,每行有一
  • 2024-06-02trie tree 和 radix tree
    https://eslody.github.io/2021/07/10/基数树-Radix-tree-和前缀树-Trie-tree/trie树为n叉搜索树,搜索路径上的所有节点组成的完整的路径构成了要查找的值。Radix树,即基数树,也称压缩前缀树,是一种提供key-value存储查找的数据结构。与Trie不同的是,它对Trie树进行了空间优化,只有
  • 2024-05-29阿里面试:全国14亿人,统计出重名最多的前100个姓名
    文章很长,且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录博客园版为您奉上珍贵的学习资源:免费赠送:《尼恩Java面试宝典》持续更新+史上最全+面试必备2000页+面试必备+大厂必备+涨薪必备免费赠送:《尼恩技术圣经+高并发系列PDF》,帮你实现技术自由,完成职业升级,薪
  • 2024-05-26数据结构与算法学习(06)查找(3)Trie树(C语言)——BUAA
    文章目录查找(3)——Trie树(C语言)介绍结构实现典型应用(字典树)代码实现优势查找(3)——Trie树(C语言)介绍本文为查找第三部分,主要是整理了本人上课时讲的内容,并给出了C语言代码实现结构实现键值由固定的字符序列组成(如数字或字母),如Huffman码、英文单词;对应结点的分层标记
  • 2024-05-23Master of Both —— Trie的应用
    Trie树所有在老鼠岛上的老鼠都应该学习Trie树!——伟大的吱嘎鼠Trie树,就是所有Oier们喜闻乐见的字符串的超级优化的数据结构!已阅,狗屁不通。——吱嘎鼠字典树,顾名思义,是一颗很像字典的树,将相同前缀的字符串合并在一起,当出现不同时就分支,成为这样的树。在这样的树上,我们可
  • 2024-05-16【字典树】【TRIE】
    本质最多有二十六个节点的树(假设只看小写英文字母)。空间换时间nex[p]是一个节点,根据c的取值最多有26个分支,nex[p][c]存的是下一个节点有意思的情况:为什么Trie的树用数组实现,二叉树用指针实现:当创建和使用Trie树时,以下是一般的步骤和操作:创建Trie树的节点结构:通常使用一个
  • 2024-05-14F. 十六进制的异或
    原题链接题解1.异或规则为不进位加法,可以看作位运算2.查找的时间复杂度必不能高,\(log_{16}{10^{18}}·2e5\)2.所以,补齐前缀0,这样就能用字典树了code#include<bits/stdc++.h>usingnamespacestd;#definelllonglong//Trie数组的定义,大小为2000005*16,适应十六进制
  • 2024-05-11AGC057C 做题记录
    题面看着很吓人!但是经过了一步步的思考,切完后再来看,其实也不过如此。纪念一下独立切的铜牌构造题。由于有\(+1\)操作,考虑反着建立01-trie,即以最低位作为第一个分支。这样\(+1\)操作相当于对最右边的一条链上每个点执行左右儿子交换。考虑trie树上每个叶子挂着对应数值在
  • 2024-05-10#Trie#洛谷 6018 [Ynoi2010] Fusion tree
    题目给定一棵树,树上每个节点都有点权,需要实现三种操作,第一种是将与\(x\)相邻的所有节点点权加一,第二种是单点减小点权,第三种是查询与\(x\)相邻的所有节点点权的异或和分析相邻实际上就是父节点和子节点,不妨将其拆开考虑,需要解决单点查询单点修改的问题,考虑维护\(n\)
  • 2024-05-09AC 自动机
    Intention:又是第不知道多少次被串串题破防的一天,做到最后总是认出我不会的AC自动机。所以!写一些我的理解(大部分来源于OIWiki),洗刷我被串串题恶心的耻辱。Introduction:前置知识:trie.trie,即字典树,是一种字符前缀树,利用模式串串间重复的前缀,以空间换来极快的查询效率。这棵
  • 2024-05-09P4407 [JSOI2009] 电子字典
    题目链接:https://www.luogu.com.cn/problem/P4407trie树+爆搜做法:对所有文本串建树。对于编辑距离要求的三种情况,分四类在trie树上爆搜即可。#definemaxn200010structtrie{intson[maxn][26];intcnt[maxn];intidx=0;map<string,bool>mm;intv
  • 2024-05-07Acwing 143. 最大异或对
    题意:n个数,求任意两个数的最大异或值。思路:01前缀树总结:确定了处理01最大异或问题时,采用先bitset<32>(x).to_string()再插入和计算的方式。32位有符号整数的最大值应该是(1<<31)-1,而不是1<<32位,1<<32位代表这个1在第33位上。但是给bitset开的时候,要开到32位。此时最高位
  • 2024-05-06208. 实现 Trie (前缀树)-python
    Trie(发音类似"try")或者说前缀树是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景,例如自动补完和拼写检查。请你实现Trie类:Trie()初始化前缀树对象。voidinsert(Stringword)向前缀树中插入字符串word。booleansearch(St
  • 2024-05-03字符串基础(hash,KMP,AC自动机,trie)
    trie树trie树,又叫字典树,就是把字符串的每个字母看做树上的一个节点,若干个字符串组成了一棵trie树。最一般的trie树好像只能搜索字符串,重点是01trie和可持久化trie树和用trie树来建ac自动机(详见AC自动机)。这里着重介绍一下01trie01trie,就是节点代表了数上的二进制位上的数。