关于treap启发式合并的一点脑洞(以bzoj2809为例)

本文介绍了如何通过treap启发式合并优化bzoj2809问题的解决方案,从传统的O(nlogm)时间复杂度提升到可能的O(nlogmn)。作者探讨了将B树拆分为序列并插入A树中可能产生的问题,如链状结构,并提出在特定情况下暴力重构以维持平衡。虽然复杂度证明未完成,但这种方法在不需要可持久化时能提供O(总节点数)的空间复杂度,减少了空间问题,但增加了实现难度。
摘要由CSDN通过智能技术生成

首先我知道bzoj2809正解应该是可并堆,之所以写treap启发式合并单纯只是因为这个脑洞…

首先我们有两个treap,分别是 A 和 B ,它们的节点数分别为 n 和 m (n<m)

网上普通的启发式合并是把 A 中的结点一个个扔进 B 里,这样复杂度是 O(nlogm) 的。

然而 zyqn 告诉我 myy 说这个事情可以做到 O(nlogmn) ,这就非常一颗赛艇了。

因为这意味着,如果你有 n 个只有一个结点的 treap,然后我每次指定两个让你合并,顺便询问询问,最后合并成一个 treap, 那么这个事情可以做到

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值