K-D Tree
UniverseofHK
事情留在今天,时间送给明天
展开
-
JZPFAR(K-D Tree + 第K远点)
JZPFAR题意:给定平面上NNN个点,然后MMM个询问:给定一个点,求第KKK远点。思路: KKK远点对的弱化版本?建好普通的K-D Tree每次询问维护一个大小为KKK的小顶堆即可剪枝也非常基础代码#include "bits/stdc++.h"#define hhh printf("hhh\n")#define see(x) (cerr<<(#x)<...原创 2019-11-02 14:30:24 · 300 阅读 · 0 评论 -
TATT(K-D Tree + 四维偏序)
TATT题意:求最长的非递减的四维偏序长度。思路:先将序列任选一个维度进行排序,然后依次将这些点插入到K-D Tree中。每插入一个点之前,计算以当前点结尾的最长偏序长度(剩下的是三维偏序问题),然后再将当前点插入即可。当然,K-D Tree重点还是在剪枝上。此处考虑两种剪枝即可:如果当前子空间某一个维度的最下值都大于询问点的这一维度,则剪枝;如果当前子空间最长偏序长度小于当前...原创 2019-11-02 13:30:01 · 411 阅读 · 0 评论 -
Finding Hotels(2017ICPC青岛现场K题+K-D Tree)
Finding Hotels在前车之鉴的基础上,真好,又是1A1A1A题意:在二维平面上给定NNN个带权点;MMM个询问,每次询问最近的权值小于某一给定值的点。思路:依旧用K-D Tree进行暴力+剪枝。首先将NNN个点建好K-D Tree,然后对每个询问,暴力查询。考虑K-D Tree的通用优化思想:对于某个根节点,在剪枝的情况下最好只遍历它的一个子树!先搞定当前节点,然后看看...原创 2019-10-30 22:17:12 · 238 阅读 · 0 评论 -
K远点对(K-D Tree)
K远点对K-D Tree 真是优雅的暴力!开局建棵树,剪枝刷题数!题意:给定二维平面上的NNN个点,求第KKK远的无序点对。思路:别问我为什么想到用K-D Tree的,因为是看了题解的。本题没有插入、删除等高级操作,仅仅建树和查询,代码简洁。进入正题:考虑暴力,暴力遍历对于每个点而言能形成的所有点对,显然复杂度为O(n2)O(n^2)O(n2),不可行,接下来考虑剪枝。首先,K=...原创 2019-10-30 12:17:28 · 548 阅读 · 0 评论 -
简单题(K-D Tree+单点插入+矩形区间和)
简单题不知道为什么取这个名字QAQ,有个地方初始化不对,在洛谷上挂了一页。题意:特点: 强制在线(last_ans)+20M内存限制思路: 没啥思路,就是K-D Tree板子题,因此下面记录K-D Tree的一些信息K-D Tree也算二叉+平衡+树吧?用于维护K-Dimension的信息,将K维空间不断地通过去某一维度的中位数点进行当前空间的分割。特点:树的节点数跟空间中点数相同(...原创 2019-10-27 21:56:56 · 189 阅读 · 0 评论