kdtree
Mima_Reincarnation
这个作者很懒,什么都没留下…
展开
-
BZOJ1941: [Sdoi2010]Hide and Seek kdtree
题目大意:给定n个点,求其中一个点使得到其它所有点中的最远距离和最近距离差值最小,距离定义为曼哈顿距离。 N<=500000,0<=X,Y<=10^8 用kdtree暴力枚举每一个点即可。注意算距离时不能算自己。 最远距离的估价为max(abs(x-xmin)、abs(x-xmax))+max(abs(y-ymin)、abs(y-ymax))。#include<cstdio>#include原创 2017-01-03 15:26:45 · 556 阅读 · 0 评论 -
BZOJ2648&2716 kdtree
题意:初始给定一些点,两种操作:1.询问一个点的最近点 2.加点 替罪羊kdtree即可,由于这题是我第一次写kdtree找最近点,查询写崩了,用读入优化卡时过的。。。 而且中途出现了很多问题: 1.树为空要返回0,要不就崩了 2.建树时记得更新size 3.初始50W个点,操作50W次,最多可能有100W个点 4.nth_element的比较函数我穿了个小于等于进去。。。无限RE#in原创 2017-01-03 15:44:10 · 584 阅读 · 0 评论 -
BZOJ2683: 简单题 kdtree
题目大意:n*n矩阵,单点加,矩形查和 1<=N<=500000,操作数不超过200000个,内存限制20M。 正解是cdq分治,强行拿kdtree卡了过去。 1.n是矩形大小,不是操作数量,不要被坑了 2.kdtree是空树直接返回0,否则就崩了 3.nth_element的写法是(begin,nth,end,comp),话说我之前那个崂山白花蛇草水错成那样都能过。。。 4.kdtre原创 2016-12-27 08:13:58 · 653 阅读 · 0 评论 -
BZOJ1176: [Balkan2007]Mokia kdtree
题目大意:同2683 修改操作数M <= 160000,询问数Q <= 10000 多了个初始值,查询时直接加上就好。#include<cstdio>#include<algorithm>#include<cmath>#define u size_tusing std::nth_element;bool cmp;struct pnt{ u pos[2]; pnt(u原创 2016-12-27 08:16:18 · 538 阅读 · 0 评论 -
BZOJ3489: A simple rmq problem kdtree
题意:给出一个长度为N的序列,M个询问,每次询问[L,R]中只出现过一次的最大数,不存在输出0,强制在线 N<=100000 M<=200000 卡时神器kdtree暴力水过。 用set预处理出每个元素i前面一个和它相等的元素pre[i]和后面一个和它相等的元素nex[i],则查询变为查询l<=pos<=r,pre < l,nex > r的元素中最大的,用三维kdtree 暴力就可以了。原创 2017-01-04 20:11:46 · 484 阅读 · 0 评论 -
BZOJ2850: 巧克力王国 kdtree
题意:n个平面上的带权点,每次给出a,b,h,询问满足ax+by#include<cstdio>#include<algorithm>using std::nth_element;typedef long long ll;struct chok{ int p[2],v; chok(){} chok(int x,int y,int z):v(z){p[0]=x,p[1原创 2017-01-03 15:15:46 · 820 阅读 · 0 评论 -
BZOJ3053: The Closest M Points kdtree
题意:k维空间n个点,t个询问,每次找m个最近点,保证答案唯一。 1 <= n <= 50000,1 <= k <= 5,1 <= t <= 10000,1 <= m <= 10,多组数据。 kdtree专属裸题。 有些网站说kdtree建树时每次找方差最小的一维建树什么的,我以亲身经历表示那根本不靠谱,这题坐标值范围才10000,算个方差都快爆double了,老老实实按12345维顺序建就好原创 2017-01-04 21:15:56 · 414 阅读 · 0 评论 -
BZOJ4009: [HNOI2015]接水果 kdtree
网上一堆题解这里不再赘述 奈何我连扫描线都写不动只好上kdtree了#include<cstdio>#include<cmath>#include<algorithm>#define gm 40001int n,p,q;int cmp;struct pnt{ int p[2]; pnt():p(){} pnt(int x,int y){p[0]=x,p[1]=原创 2017-05-29 09:07:26 · 502 阅读 · 0 评论