随笔分类 - KD-tree
摘要:题目描述 平面上有n个点。现在有m次询问,每次给定一个点(px, py)和一个整数k,输出n个点中离(px, py)的距离第k大的点的标号。如果有两个(或多个)点距离(px, py)相同,那么认为标号较小的点距离较大。 平面上有n个点。现在有m次询问,每次给定一个点(px, py)和一个整数k,输出
阅读全文
摘要:题目描述 在平面上,有 nnn个圆,记为 c1,c2,...,cnc_1, c_2,...,c_nc1,c2,...,cn 。我们尝试对这些圆运行这个算法: 找到这些圆中半径最大的。如果有多个半径最大的圆,选择编号最小的。记为 cic_ici。 删除 cic_ici及与其有交集的所有圆。两
阅读全文
摘要:题目描述 四维空间真是美妙。 现在有nnn个四维空间中的点,请求出一条最长的路径,满足任意一维坐标都是单调不降的。 注意路径起点是任意选择的,并且路径与输入顺序无关(路径顺序不一定要满足在输入中是升序)。 题解 第一维排序,然后就是个3D-tree 代码
阅读全文
摘要:题解 kd-tree练手题,这题可以将时间T弄上,就是个三维偏序问题,可以直接cdq分治就好了 那么考虑kd-tree怎么做,首先对于修改操作,类似于插入一个点 对于查询操作,我们可以维护每一棵子树中所有点x和y坐标的最大/最小值 如果当前子树整棵树都在当前查询矩形内,就可以直接返回这棵子树中的权值
阅读全文