
01字典树
ACM败犬
这个作者很懒,什么都没留下…
展开
-
bzoj 4137:[FJOI2015]火星商店问题(离线线段树分治 + 可持久化 trie)
题目链接:火星商店问题 感觉就是HDU 5390 的加强版 询问是一段时间段,而更新是时间点 固定商品就是一棵可持久化 trie上区间查找。考虑新购买的商品: 在线做法:以时间建一棵线段树,每个节点维护一个可持久化 trie,通过线段树区间查询各个时间段来求得询问的答案。(也就是线段树可持久化 trie 的做法)这么做空间必定裂开。 考虑离线做法:询问可以在线段树上分成多个子区间且互不干扰(也...原创 2020-01-09 16:16:30 · 177 阅读 · 0 评论 -
HDU 5390 :tree(线段树离线分治 + 01字典树)
题目大意:在一棵带点权的有根树上有两种操作:一是修改某个点的权值,二是询问一个点与它到根节点路径上的某个点可异或得到的最大值。 一开始想到树上可持久化 trie,但是带修改操作的话每一次修改都得修改它的所有子树。 既然修改一个点会影响到它的子树的答案,考虑按 dfs 序来维护一棵线段树,每次将修改更新到它的 dfs序区间。 要使得异或上某个值最大,需要用到 01字典树,可以线段树的每一个结点维护...原创 2020-01-09 12:17:34 · 334 阅读 · 0 评论 -
HDU 5536:Chip Factory(01字典树模板)
题目大意:在一个数组中找出 (s[i]+s[j])^s[k] 最大的值,其中 i、j、k 各不相同。 题解:01字典树模板,01字典树就是将数字的二进制表示形式插入字典树中,由于二进制只有两种字符0和1,01字典树的结构变得更简单。01字典树可以得到一个数字在一个数组里和谁异或得到的值最大,做法是贪心匹配,字典树上的每一个结点尽量走字符不同的地方。 这题还要下标不能重复,做法是:将s 序列加入01...原创 2019-08-09 16:56:50 · 160 阅读 · 0 评论