随笔分类 -  k-d树

摘要:更新:此题我的代码设置eps=1e-8会WA,现在改为1e-9貌似T了 此题网上的大部分做法是cdq分治+凸包,然而我觉得太烦了,于是自己口胡了一个k-d树做法: 加入一个圆$(x,y)$,直接在k-d树上加入这个点即可,注意要打rebuild否则会T。 查询一个点$(x_0,y_0)$是否在所有的 阅读全文
posted @ 2017-12-07 10:32 AlphaInf 阅读(558) 评论(5) 推荐(1)
摘要:题目大意:有$m$个操作,分两种:在指定三维坐标内加入一个点,询问指定空间内点的数量。 其中$m≤5*10^{4},1≤x,y,z≤10^9$ 这题几乎就是裸的$k-d$树啊。我们动态维护一棵$k-d$树,对于以某个节点为根的字树中,维护该子树中点的三维范围,以及该子树中点的数量。然后直接查询即可。 阅读全文
posted @ 2017-12-01 22:35 AlphaInf 阅读(252) 评论(0) 推荐(2)
摘要:由于某些原因,我先打了一个错误的树套树,后来打起了$k-d$。接着因不明原因在思路上被卡了很久,在今天中午蹲坑时恍然大悟...... 对于一个数字$a_i$,我们可以用一组三维坐标$(i,pre,nxt)$来表示,其中$i$表示该数字下标,$pre$表示在区间$[1,i)$中满足$a[j]=a[i] 阅读全文
posted @ 2017-11-30 19:34 AlphaInf 阅读(250) 评论(0) 推荐(1)