字典树小记

news/2025/11/13 21:10:03/文章来源:https://www.cnblogs.com/huangyuze/p/19219572

普通字典树

没什么好讲的

0-1 Trie

非常有用,经常用于异或相关的题目

求一个集合中两两异或的最大值

枚举集合中的一个数 \(x\),按位贪心,如果这一位有一个与 \(x\) 不同的,那么字典树上走这一边,否则走 \(x\) 的这一边。具体见代码

int solve(int x){int p = 1, o = 0, ans = 0;F_(i,30,0){int o = ((x>>i)&1);if (ch[p][!o]){p = ch[p][!o];ans += (1<<i); } else {p = ch[p][o];}}return ans;
}

求两个集合中各选一个数异或的最小值

可以枚举第一个集合的数,也可以一次 \(dfs\)

int query(int u,int v,int bit){int res = 2e9;if (trie[u][0]&&trie[v][0]) res = min(res,query(trie[u][0],trie[v][0],bit-1));if (trie[u][1]&&trie[v][1]) res = min(res,query(trie[u][1],trie[v][1],bit-1));if (res < 2e9) return res;if (trie[u][0]&&trie[v][1]) res = min(res,(1<<bit)|query(trie[u][0],trie[v][1],bit-1));if (trie[u][1]&&trie[v][0]) res = min(res,(1<<bit)|query(trie[u][1],trie[v][0],bit-1));if (res==2e9) res = 0;return res;
}

可持久化 0-1 Trie

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/964718.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

搜维尔科技:Xsens Link为精准而生,为创意而设计,为动作捕捉性能树立了新的标准

行业领先的动作捕捉服 新一代Xsens Link专为追求精准、可靠和行动自由的专业人士打造,这款全新的eSuit配备17个一键式传感器,内置线缆,安装时间缩短50%。Link经过重新设计,可提供最精准、最稳定的运动数据,树立了…

一个好题2

一个好题的题解题目传送门 欢迎光临我的博客 遇到这种题,我们首先有一个套路:拆贡献。我们把答案拆到每条边上,这样的话只需要加上 每条边在所有合法方案里出现的次数之和 \(\times\) 这条边的长度即可。 那一条边会…

实用指南:百分点科技发布中国首个AI原生GEO产品Generforce,助力品牌决胜AI搜索新时代

实用指南:百分点科技发布中国首个AI原生GEO产品Generforce,助力品牌决胜AI搜索新时代pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important;…

考前复习

Floyd 字符串哈希 单调栈/单调队列 三分 ST 表 最小生成树 最近公共祖先(LCA) dij SPFA 缩点 tarjan(割点,割边,点双,边双,判环 ) 线段树,树状数组 欧拉路径 矩阵快速幂 全源最短路(Johnson) 两个排列的最长公…

2025 年 11 月粮库空调厂家最新推荐,聚焦资质、案例、售后的实力品牌深度解析!

在粮食储备行业,粮库空调的性能直接关系到粮食品质与存储安全,随着全球粮食储备技术升级,市场对高精度、高稳定性粮库空调的需求持续增长。本次 2025 年 11 月粮库空调厂家推荐,参考国际制冷协会(IIR)、国际粮食…

题解:P3813 [FJOI2017] 矩阵填数

更差的阅读体验注意到,一个矩阵最大值为 \(x\) 的充要条件是:矩阵中的每一个元素 \(\le x\)。 矩阵中存在至少一个 \(x\)。仅考虑第一个条件是好做的。具体地,每一个格子存在一个取值的上限 \(mx_{i, j}\),也就是所…

第三章博文

1.关于数学三角形这道题目,从图形来看,它拥有自上而下的的逻辑结构,根据观察,可以列出以下的递归方程式: 假设我们使用一个二维数组c的下半三角来存放整个数学三角形,用i来控制行(从1开始),用j来控制列,那么就…

Spring BeanPostProcessor接口

[[Spring IOC 源码学习总笔记]] BeanPostProcessor BeanPostProcessor是 Spring 框架提供的一个扩展点接口,它允许开发者在 Spring 容器完成 Bean 的实例化、依赖注入之后,在初始化阶段的前后“拦截”并自定义 Bean …

25.11.13随笔联考总结

考试 正常通读题面,发现 T1 是构造,T2 很神秘没啥想法,T3 是一个比较明显的 dp,T4 是 ds。思考了一下决定还是顺序开。做 T1,有好几次都给我一种做出来的错觉,但是到最后一直有几个位置不合法,怎么微调都不能构…

完整教程:Verilog和FPGA的自学笔记6——计数器(D触发器同步+异步方案)

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

LucaOne架构

https://github1s.com/lucaone/LucaOne/blob/master/src/models/lucaone_gplm.py LucaOne模型架构详解 LucaOne是一个统一的基因-蛋白质多模态基础模型,其架构设计体现了对生物序列本质的深刻理解。模型的核心目标是打…

实用指南:Windows安装MongoDB保姆级教程(图文详解)

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

linux USB --- 监听 USB 角色

#include <linux/device.h> #include <linux/module.h> #include <linux/mutex.h> #include <linux/gpio/consumer.h> #include <linux/platform_device.h> #include <linux/usb/typ…

温州工友自动包装设备有限公司:专注螺丝五金智能包装,助力企业降本增效

在温州乐清电器之都,有一家深耕螺丝五金自动化包装设备领域多年的企业 —— 温州工友自动包装设备有限公司。该公司技术研发始于 2007 年,经过多年积累与沉淀,于 2011 年正式注册成立,如今已发展成为集研发生产、销…

25.11.09

CF1935F 如果代价都能做到 1,那就再好不过了。 尝试一下,发现一个子树总有最小值 \(x\),那么连接 \((x,x-1)\) 看起来就做完了。 但是可能 \(x-1\) 被删了,这样就挂了,需要连 \((x,x-2)\)。 然后发现 \((x,x-2)\)…

NOI2025 游记

Day -? UNR。两场应该都认真打了。但是一题不会,打了六个暴力喜提 rk 130 Ag。事后看来这可能掉了 RP。 D2T1 订了一下午。我怎么一点不会数数。 Day -1 报到日。 徽章订了不少,但是我真的太社恐了。跟着 winston 去…

NOIP 考前做题计划

11月14号 复习蓝书上的 \(0x06\) 和 \(0x07\) 节,重新思考 \(0x08\) 内这两节的习题,并为代码写注释 11月15号 上午打洛谷模拟赛,晚上复习蓝书上 \(0x11\) 节,并做当节习题以及 \(0x18\) 节对应的习题 11月16号 复…

网络攻防实战 lab06 靶机 VulnHub hard-socnet2

地址发现 arp-scan -l得到地址为 10.0.2.8。 端口发现与服务版本探测 nmap -p- nmap -p22,80 -sC -sV

[豪の学习笔记] Spring框架学习碎碎念#5

主动获取Bean对象、Bean的作用域、第三方Bean管理跟学视频:黑马JavaWeb课程 Bean管理 获取Bean ​ 默认情况下,SpringBoot项目在启动的时候会自动的创建IOC容器(也称为Spring容器),并且在启动的过程当中会自动的将b…

Docker部署Code-Server,实现远程写代码

Docker部署Code-Server,实现远你不需要在自己的电脑上安装任何复杂的工具,只需要一个浏览器,就可以开始 C、C++ 和 Python 的学习与开发。参考:使用 Docker 部署 VS Code in The Browser - 谱次 - 博客园 hub.dock…