开始: 2026-10-15 20:00:00

【集训11】模拟赛1016

结束: 2026-10-17 12:00:00
当前  2026-11-04 11:35:08  类型: IOI  状态: 已经结束 

P4. 入侵攻击(attack)
描述

公元 2089 年,邪恶的滑滑梯星人向银河系发起总攻。

为了抵抗滑滑梯星人的入侵,行星防御理事会(PDC)付出很大代价绘制出了一份以滑滑梯总部为原点的星际地图,其中包含了 n 个滑滑梯星人可能入侵的星球的三维坐标。

而在之后的几次战役中 PDC 弄清楚了滑滑梯星人的进攻模式:

- 从总部 (0,0,0) 驾驶飞船出发;

- 每次移动时,如果飞船的曲率引擎的空间翘曲能力为 R,则与当前飞船所在星球**欧氏距离小于等于 R** 的星球都可以被直接到达;

- 设上步中可到达的还未被占领的星球(不包括飞船现在所在的星球)数量为 k,则滑滑梯星人会将飞船复制为一模一样的 k+1 份,其中一艘留在原地占领该星球,其余 k 艘分别前往这 k 个可到达的星球。

通过捕获的几艘飞船,PDC 大致推测出了滑滑梯星人曲率引擎的常用功率,现在他们想知道在飞船空间翘曲能力为 d_1, d_2, \dots, d_m 的情况下,滑滑梯星人分别能占领多少个星球。


输入

第一行两个数 n 和 m。

以下 n 行,每行三个整数 x_i, y_i, z_i,表示每个可能被入侵的星球的三维坐标。

以下 m 行,每行一个整数 d_i,表示 m 次对滑滑梯飞船空间翘曲能力的假设。


输出

共 m 行,每行一个整数,分别表示在每种假设下滑滑梯星人能占领的星球总数。

**注意**:滑滑梯总部不算占领的星球。


样例

输入

5 5
2 0 3
0 4 4
5 1 3
3 7 6
4 0 1
2
3
4
5
6

输出

0
0
3
5
5
提示

> 样例解释:

> - 当 R\le 3 时,飞船不能从总部到达任何星球,所以能占领的星球数为 0。

> - 当 R=4 时,飞船可以从总部到达 1 号星球(距离为 \sqrt{13}),从 1 号星球可以到达 3 号和 5 号星球(距离分别为 \sqrt{10} 和 2\sqrt2),但从总部和这些星球这 4 个点都无法到达其他 2 个星球,所以能占领的星球数为 3。

> - 当 R=5 时,飞船可以从总部到达 1 号和 5 号星球(距离分别为 \sqrt{13} 和 \sqrt{17}),从 1 号星球到达 2 号星球和 3 号星球(距离分别为 \sqrt{21} 和 \sqrt{10}),从 2 号星球到达 4 号星球(距离为 \sqrt{22}),所以能占领的星球数为 5,即所有星球都可以被占领。

> - 显然当 R=6 时同样可占领所有星球。

| 30% | n \le 10,\ m \le 10 |

| 60% | n \le 200,\ m \le 2000 |

| 100% | n \le 1000,\ m \le 5\times 10^5,0\le x_i, y_i, z_i, d_i \le 10^9 且均为整数 |

**数据存在梯度**:在所有数据中均匀分布着 50% 的数据满足 m=1。

**提示**:三维欧氏距离计算公式——假设两点坐标分别为 (x_1,y_1,z_1) 和 (x_2,y_2,z_2),则它们之间的欧氏距离为

\sqrt{(x_2-x_1)^2+(y_2-y_1)^2+(z_2-z_1)^2}


提交

题目参数
时间限制 1 秒
内存限制 128 MB
提交