根据圆心建一棵kd-tree,然后模拟题目的过程,考虑搜索一个圆 剪枝:如果[与包含该子树内所有圆的最小矩形]都不相交就退出 然而这样的理论复杂度是o(n^2),所以会被出题人卡了 但是如果将坐标系旋转45度,对于(x,y),变为$((x.x-y.x)/\sqrt{2},(x.x+y.x)/\sqr ...
分类:
其他好文 时间:
2019-09-17 19:10:30
阅读次数:
92
KD-tree 讲解 by simb351 应神犇junble19768的要求,来水一发KD-tree讲解。学习过程中发现关于KD-tree的资源实在是少,在OI中的应用更是少之又少。 虽然这东西很水,随便嘴一嘴就能口胡出来。所以写一篇讲解。 前置芝士: 1. 基础BST姿势 2. 替罪羊树 3. ...
分类:
其他好文 时间:
2019-09-11 09:48:58
阅读次数:
129
一、rmq问题 1.st表 2.线段树 3.树状数组 二、lca 三、基本数据结构 1.栈 2.队列 3.单调栈 4.链表 5.stl 6.并查集 7.堆/优先队列 四、分治 1.点分治 2.边分治 3.树链剖分 4.基于询问的分治 5.cdq分治 五、其他 1.可持久化线段树 2.KD-tree ...
分类:
其他好文 时间:
2019-08-11 17:27:04
阅读次数:
70
暴力的做法应该是这样的,维护大小为k的堆,每次插入两点间距离并弹出堆顶。 然后这个做法显然是可以KD-Tree优化的,建立KD-Tree,然后如果该平面内最远点小于堆顶,则直接退出。就当做是复习很久没做的KD-Tree了。 不过有一个细节要注意,求最远点对,(1,2)->(2,1)算一对,所以堆的大 ...
分类:
其他好文 时间:
2019-07-13 09:17:45
阅读次数:
83
~~调到哭系列~~ 其实就是kd tree的模板题。用堆维护出距离最小的m个点。然后在$kd tree$上查询。 这一个小地方从上午10点调到下午4点半。。。。。真的快气哭了。。。 代码 cpp //调的心累呀!!!! / @Author: wxyww @Date: 2019 06 13 09:57 ...
分类:
其他好文 时间:
2019-06-13 17:27:58
阅读次数:
97
" 传送门 " Description 两个操作,往一个格子里加一个数和求给定矩形的权值和,强制在线,操作数$\leq 200000$ Solution 直接上KD tree 为了保证树的形态较为优美 每加入$10000$个数后,对KD tree进行重构 Code c++ include defin ...
分类:
其他好文 时间:
2019-05-11 17:46:44
阅读次数:
115
SDOI2010 捉迷藏 对于i=1...n,求曼哈顿距离距离i最近和最远的点的距离分别是多少。 思路 KD Tree 的模板题目。 KD Tree,实际上就是对一个多维空间进行不断的划分,在一维上类似于二叉搜索树。 如果是多维的,我们可以每一次只划分一维,然后这样不断轮流划分不同的维度。 具体的, ...
分类:
其他好文 时间:
2019-03-25 23:34:11
阅读次数:
237
数据结构 给一个长为$n$的$A$,定义$n\times n$的$B_{l,r}=\sum\limits_{i=l}^rA_i$,两个操作,修改$A_p$为$x$,询问$B_{l,r}$的历史最小值。 我居然把D1T1鸽到D4晚上... 历史最值+kd tree 先离线的把点放到kd tree中(要 ...
分类:
其他好文 时间:
2019-03-24 21:42:53
阅读次数:
168