题面 传送门 KDTree 大概就是一个分割\(k\)维空间的数据结构,二叉树 建立:每层选取一维为关键字,把中间的点拿出来,递归左右,有个\(STL\)函数nth_element可以用一下 维护:维护当前这个点的子树的每一维的最大值和最小值,相当于维护了个高维矩形 查询:直接遍历一棵树是\(O(n)\)的,利用一些独特的性质可以剪枝,因题而异 奇技淫巧: 把坐标绕原点转\(\alpha\)度 定期重构或者像替罪羊树一样,利用平衡因子判断是否需重构 每次查询到某一层优先选取答案可能最优的一个儿子…