KD_TREE总结

本文深入讲解了KD_TREE算法,一种高效处理K维空间查询的数据结构。涵盖了算法的基本思想,包括如何通过二叉树实现空间切割,达到缩短查询时间的目的。讨论了KD_TREE的构建过程、查询方法以及复杂度分析,并提供了实例题目解析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用途

KD_TREE可以求K维空间最短/长两点的距离
或者前T长的距离,蒟蒻大概就知道这一点。。。
思想

把空间切割,完成缩短时间的半目的
实现(建树,插入)

怎样切割???
用二叉树来实现,每一层按层数%K这一维切割
记录每一个子空间的状态就可以了,例如处理出每个空间每维的上限下限
然后合并子树的状态,插入类似
复杂度

就可以做到随机数据logN的复杂度,但毒瘤出题人一卡就变为了sqrt(N)
我也不知为什么。。。。。大佬都这样说。。。
最后的空间就大概被分成了log(N)个吧。。
查询

查询的时候与空间的上下限比较,如果更优就递归,先递归优的
例题

bzoj1941sdoi捉迷藏
板子。二维的,无修改
bzoj2648SJY摆棋子
板子+修改,二维

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值