首页 > 其他分享 >字典树

字典树

时间:2024-10-30 09:34:03浏览次数:5  
标签:01 Trie 复杂度 插入 异或 字典

字典树(Trie)

支持 \(O(|s|)\) 插入/查询一个字符串。空间复杂度为 \(O(|s|_{\max}|\Sigma|)\)。

01 Trie

即 \(\Sigma=\{0,1\}\) 的字典树,类似二进制,插入/查询一个数复杂度为 \(O(\log x)\)。空间复杂度貌似是 \(O(\log x)\) 的?

这种数据结构可以用来维护异或等基本操作,由于不需要递归,所以常数会小些。

维护异或极值

例:P4551 最长异或路径

给你一棵树,树上每个点有点权,求 \((u,v)\) 满足路径上的边权异或值最大。
\(n\le 10^5,w\in[0,2^{31})\)

记 \(X(u,v)\) 为 \((u,v)\) 路径上的异或和,钦定 1 为根。考虑异或有性质 \(X(u,v)=X(u,1)\oplus X(v,1)\),考虑记下每个 \(X(u,1)\) 并插入 01 Trie,然后对于每个 \(u\),从 01 Trie 的根开始找尽量与 \(X(u,1)\) 当前位不同的位跑,直到走到底。显然越高位的贡献越大(\(2^{x}>2^{x-1}+2^{x-2}+\ldots+1\)),所以贪心正确。

标签:01,Trie,复杂度,插入,异或,字典
From: https://www.cnblogs.com/DEV3937/p/18514968

相关文章

  • 用人话讲计算机:小白版Python篇!(四)关于列表、集合、字典、元组初步认识
    注:本章节所写列表、集合、字典、元组等均只涉及初步认识,重在理解,后续会出相关专题专门详细介绍每一种。一、列表列表是python中的一种数据结构,它可以同时存储整数、浮点数、字符等东西!简单来说,你可以将它理解为:专业储存箱,主打一个来者不拒。1.列表长什么样用[]扩住各......
  • Python字典到JSON字符串的转换
    在Python中,字典是一种非常常见的数据结构。它可以轻松地转换为JSON字符串,从而实现了将Python对象序列化为JSON格式的目的。本文将详细介绍如何将Python字典转换为JSON字符串。1.Python字典的基本概念在Python中,字典是一种无序的键值对集合。每个键必须唯一且非空,而值可以是任何......
  • 使用yield压平嵌套字典有多简单?
    我们经常遇到各种字典套字典的数据,例如:nest_dict = {    'a': 1,    'b': {        'c': 2,        'd': 3,        'e': {'f': 4}    },    'g': {'h': 5},    'i': 6,    'j�......
  • 在 Go 中,如何实现一个带过期时间的字典映射
    有些时候,应用系统用不上redis,我们也可以用锁和goroutine实现一个带有过期时间的线程安全的字典。这种字典的应用场景,比较倾向于数据规模较小,没有分布式要求。下面是实现:1、定义结构typeItemstruct{valueinterface{}expireAtint64}typeTTLM......
  • python中的字典排序--sorted()
    字典的排序:在学习python的时候,了解到相比于列表,字典是一个无序的数据结构,一般都不对其进行排序的。但是要想对字典进行排序,是可以通过sorted()函数进行操作的!关于字典的排序,下面从键key和值value进行代码的运行和分析:【先看代码和执行结果,后面会进行详细的解析】#先定义一......
  • 一个SQLSugar字典操作使用问题
    问题在页面进行删除对象操作时报错,列名无效:列名'IsDeleted'无效。列名'CreateTime'无效。列名'Name'无效。基本信息数据库:SqlServerExpress16ORM框架:SQLSugar分析日志中打印了sql语句,直接复制sql语句到SSMS中,同样提示列名无效,可以确定列名有问题;公司的产品框......
  • 【WPF】【C#】【代码记录】构造ComboBox下拉的数据源(字典类型)
    #region下拉privateDictionary<string,T>getComboSource<T>(paramsT[]types)whereT:Enum{varenumValues=types.Length>0?types:(T[])Enum.GetValues(typeof(T));returnenumValues.ToDictionary(o=>getTypeName(o),o=>......
  • 字典树 计数问题(含 2022 icpc杭州 K)
    //最近学了字典树,补一下1.概念和实现首先,字典树是一棵树(废话),边表示字母,从根到叶子节点所有边的顺序组合表示字目排列顺序。看一下图明白很多:例如:abc这个字母排序(或者说“单词”),可以用1->2->5->8这条路径表示。有个性质就是:同一个单词的末尾节点标号是唯一的。比如以6为末尾......
  • 「Day-2 提高笔记-字典树」
    字典树字典树是什么?理论知识插入操作我们在插入的时候,先从根节点去向下遍历。对于字符串\(S\)的一位\(S_i\)。如果发现其在字典树中当前节点下有这个字符\(S_i\),则继续向下,在向下的过程中每次给当前节点的次数加\(1\),记录字符串前缀数量。若无这个字符,则开辟一个新......
  • python中怎么遍历字典
    遍历字典:keys() 、values()、items()1、xxx.keys():返回字典的所有的key,返回一个序列,序列中保存有字典的所有的键。效果图:代码:# keys() 该方法会返回字典的所有的key#   该方法会返回一个序列,序列中保存有字典的所有的键d = {'name':'孙悟空','age':1......