随笔分类 -  数据结构--Trie

摘要:题目 BSOJ6325【10.17题目】异或doubt 分析 21.10.20考试T1。 首先看到字典序,容易想到按位贪心,然后看到异或容易想到trie/线性基。 于是考虑一个naive的trie的做法,对A建立trie,然后对于每一个B查询异或最小值,全部放进一个小根堆,每次取出堆顶作为当前的c, 阅读全文
posted @ 2021-10-20 20:16 __Anchor 阅读(105) 评论(0) 推荐(0)
摘要:前言 \(trie\) 树一般用于处理前缀字符串的匹配问题,但是其实在字符串问题上的作用并不大,一般都是拿来转化的。 \(01trie\) 可以用来维护异或最大值,同时也多出现在位运算的场合,尤其是按位贪心等技巧,需要在 \(01trie\) 上二分等,需要掌握。 众所周知,绝大多数复杂度不基于均摊 阅读全文
posted @ 2021-06-19 17:35 __Anchor 阅读(586) 评论(0) 推荐(0)
摘要:问题 P6072 『MdOI R1』Path 选择两条简单路径,满足没有重合的点,且边权异或和之和最大。 分析 首先我们考虑这个“没有重合的点”是个什么性质: 假设第一条路径的 \(lca\) 是 \(x\) ,那么一定是满足另外一条路径在 \(x\) 的子树外面(不在就交换,然后就在了)。 这是什 阅读全文
posted @ 2021-04-26 21:00 __Anchor 阅读(62) 评论(0) 推荐(0)
摘要:LOJ517「LibreOJ β Round #2」计算几何瞎暴力 要求维护一个全局异或,动态在末尾加元素,询问区间和,全局排序的数据结构。 首先因为是全局异或,这个可以想到直接打标记,然后在末尾加元素可以用一个缓存数组,重点在于全局排序还要区间询问和该怎么办。 根据排序,可以想到 \(Trie\) 阅读全文
posted @ 2021-04-16 16:04 __Anchor 阅读(163) 评论(0) 推荐(0)
摘要:P4735 最大异或和 P4735 最大异或和 可持久化 01Trie 维护区间异或最大值板子题。 以下标为 root 的编号,每次询问 \([l,r]\) 中的所有数异或 \(x\) 的最大值就是到 Trie 上面去搜索,记录当前子树中的数的个数。 然后如果两个root对应树的当前 cnt 不一样 阅读全文
posted @ 2021-04-12 18:25 __Anchor 阅读(112) 评论(0) 推荐(0)