[省选联考 2020 A 卷] 树

博客介绍了如何利用Trie树解决一道竞赛题目,涉及数据结构支持单点插入、启发式合并和统计异或和。文章重点讨论了全局+1操作在二进制下的含义,提出从小到大建立Tire树可以简化问题并实现O(log)复杂度的解决方案。
摘要由CSDN通过智能技术生成

一、题目

点此看题

二、解法

终于吧咕的这道题补回来了,考虑搞一个数据结构,我们需要维护:

  • 支持单点插入
  • 支持启发式合并
  • 支持统计异或和
  • 支持全局 + 1 +1 +1

发现只有第四个不会做,那就搞它,考虑 + 1 +1 +1的意义在二进制下的意义是把末尾一段连续的 1 1 1删去,把前面的 0 0 0设置成 1 1 1,发现这样可以通过 t i r e tire tire树交换子树来做,但是细节不是很清楚。

考场上我想到这一点就止步了,原因是我的 t i r e tire tire树是从大到小建的(指二进制位的顺序),但是如果我们从小到大建出这颗 t i r e tire tire树,那么就可以一直往 1 1 1方向走,然后交换子树,这样做的复杂度是 log ⁡ \log log的,而且实现简单!

知道这一点后我写出来就马上过掉了,我只想对自己说:不会吧,不会吧,都0202年了,不会还有人只会从小到大建 t i r e tire

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值