KDT
qq_45778406
这个作者很懒,什么都没留下…
展开
-
The Closest M Points HDU - 4347(KDT多维,最近的m点, 优先队列)
题意: 给你n个k维的点, 然后q个询问, 对于每个询问会给出一个点,需要我们求出离这个点最近的m个点,按距离从小到大排序。 思路: :和二维类似, 但求的是最近的m个点, 就要结合优先队列了,在遇到一个点时,如果优先队列还没有满,就先加入,如果满了, 就和队列头部的元素相比较,看谁最优,在判断是否继续分支的时候也要根据队列的情况,来进一步的判断是否继续向下搜索。 补充知识:pait内部自定义了排序优先级, 第一排序的时first, 然后是second 具体细节见于代码 #include <bits原创 2021-03-30 16:59:11 · 185 阅读 · 0 评论 -
In case of failure HDU - 2966(kd_tree)
题意: 给n个二维坐标表示n个点,求每一个点到它最近的点的距离 思路:kd_tree模板题,看了题解终于会写模板题了 大致原理: 是基于BST的,只不过BST是一维的,而KD_tree可以划分多维的情况。 但也有一点不同的情况,距离是要考虑多维的,不能简单的通过某一维的划分,就判断出正解,所以我们可以先向最有可能是正解的地方查询,然后回溯判断其他情况,此时由于已经有了一个较优秀的答案就可以减去较多的枝。 实现细节见于代码: #include <bits/stdc++.h> using na原创 2021-03-29 23:52:11 · 114 阅读 · 0 评论