#bzoj3053. The Closest M Points

    ID: 3392 远端评测题 1000ms 256MiB 尝试: 1 已通过: 0 难度: 7.11 上传者: 标签>图结构其他数学数据结构k-d树bzoj

The Closest M Points

题目描述

软工学院的课程很讨厌!ZLC\text{ZLC}同志遇到了一个头疼的问题:在KK维空间里面有许多的点,对于某些给定的点,ZLC\text{ZLC}需要找到和它最近的mm个点。

(这里的距离指的是欧几里得距离:$D(p, q) = D(q, p) = \sqrt{(q_1 - p_1) ^ 2 + (q_2 - p_2) ^ 2 + (q_3 - p_3) ^ 2 + \ldots + (q_n - p_n) ^ 2}$

ZLC\text{ZLC}要去打Dota\textit{Dota},所以就麻烦你帮忙解决一下了……

输入格式

第一行,两个非负整数:点数nn,和维度数kk

接下来的nn行,每行kk个整数,代表一个点的坐标。接下来一个正整数:给定的询问数量tt

下面2×t2\times t行:

  1. 第一行,kk个整数:给定点的坐标;
  2. 第二行:查询最近的mm个点;

所有坐标的绝对值不超过1000010000

有多组数据!

输出格式

对于每个询问,输出m+1m+1行:

  • 第一行:the closest m points are: mm为查询中的点的数量;
  • 接下来mm行每行代表一个点,按照从近到远排序。

保证方案唯一,下面这种情况不会出现:

2 2
1 1
3 3
1
2 2
1

样例

3 2
1 1
1 3
3 4
2
2 3
2
2 3
1
the closest 2 points are:
1 3
3 4
the closest 1 points are:
1 3

数据规模与约定

对于100%100\%的数据:$1\le k\le 5,1\le n\le 50000,1\le m\le 10,1\le t\le 10000$。