
K-D Tree
Wuliwuliii
谁无暴风劲雨时,守得云开见日明!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
BZOJ 4066: 简单题【替罪羊树重构K-D Tree】
题目链接 题的名称叫做“简单题”,实际上不简单——题记 没有任何的花里胡哨,卡了空间!!! 也就是说,只能用数据结构来维护咯,舍弃时间也不能浪费空间啊,多一丢丢都会MLE。 所以,就变成动态开点平衡二叉树操作吧,但是真的平衡嘛?KD Tree建树的话,跟输入有关,还真不平衡?怎么维护其平衡呢?那么就是替罪羊树不断的重构不平衡的二叉树吧,这里不能添加判断平衡的数组了,因为空...原创 2020-03-29 21:01:17 · 234 阅读 · 0 评论 -
SJY摆棋子【替罪羊树重构K-D Tree】
题目链接 BZOJ 2648 前N个点还是比较好处理的,直接利用二叉树的建树来进行处理,关键就是后面的不断插入的M个点,这时候该如何操作来降低复杂度? 这里,我们引入替罪羊树的思想来使得二叉树趋于平衡,那么平衡因子应该如何确定呢?这道题存在一定的卡常,因为总的点数将近1e6了,这样以来,复杂度都不能带大常数了。 所以,我们估一下值,大概在处理了3e5次操作之后就直接进行重构树,保...原创 2020-03-26 17:39:21 · 319 阅读 · 0 评论 -
SJY摆棋子【K-D Tree+常数优化】
题目链接 首先,对于T==2的时候,查询是个很好解决的问题,关键就是在于插入怎么处理了。 我们像做一个可持久化数据结构一样,我们对KD-Tree也进行可持久化,然后问题就变成了每次插入一个点,但是这样以来就是会使得查询的时候,我们的估值函数应该如何处理呢? 估值函数的处理,就是对于每个区间段,处理出来它的区间的最值范围,最小值和最大值,然后呢,对于最近可能的曼哈顿距离,如此求解:...原创 2020-03-25 10:48:18 · 252 阅读 · 0 评论 -
The Closest M Points【K-D Tree+堆】
题目链接 HDU - 4347 给出N个点的K维图,然后有T次询问,每次询问一个点(x,y),问它的前M临近的点按顺序分别是哪几个,保证答案的唯一性。 于是,根据这里的M很小,所以想到的就是拿一个堆来维护,值大的在前,我们尽可能使得堆的最大值最小,同时就是保证了堆内所有的元素的最小性质,所以一开始的时候push进去M个INF。 剩下的,就是KD Tree的查询了,每次输入一个点,...原创 2020-03-24 10:20:23 · 201 阅读 · 0 评论 -
[Sdoi2010]Hide and Seek【K-D Tree】
题目链接 BZOJ 1941 题意:给N个点,选其中一个点为起点,使得它到其他所有点的最远曼哈顿距离和最近曼哈顿距离的差值最小。 所以,题目就变成了对每个点进行查询,去查询它们对应的二维空间的最远到达的点和最近到达的点,最近到达的就是直接用临近算法来解决。 最远到达的话,我们于最近到达的“球面半径”一样,进行估值函数来传递信息,我们估值最远的可能点来进行优化。#includ...原创 2020-03-23 22:13:55 · 230 阅读 · 0 评论 -
[Cqoi2016]K远点对【BZOJ 4520】【KD Tree+堆】
题目链接 BZOJ 4520 已知平面内 N 个点的坐标,求欧氏距离下的第 K 远点对。 这里K比较的小,最大时只有100,所以想法就是维护一个堆,使得堆首是整个堆的最小元素,所以,这里就用优先队列来维护这层关系吧。 因为点到点,每个可以取的点对会被重复取一次,所以我们为了避险,直接取第2K远的点对。 剩下的就是KD Tree的操作了,但是有个难点,维护每个点最远可以选的点...原创 2020-03-23 20:13:26 · 205 阅读 · 0 评论 -
K-D Tree(K维空间数据结构)
K-D Tree是K临近算法中的一种k-d 是 k-dimensional 的缩写,也就是k维树,换句话说就是说这个树是维护一个k维元素的树,这个树上的节点有k个分量。一个k维的二叉搜索树就是k-d tree了。 先了解一下K-D Tree的概念例子(网图)K == 3的K-D Tree模型首先来看下树的组织原则。将每一个元组按0排序(第一项序号为0,第二项序号为...原创 2020-03-23 11:30:15 · 2471 阅读 · 0 评论