A3748 「OOI 2022 Day 2」平面拉伸

暂无评定 传统题 国际知名赛事 上传者
时间限制10000ms
内存限制1024MiB
通过 / 提交0/0

A3748「OOI 2022 Day 2」平面拉伸

暂无评定 传统题 国际知名赛事 上传者
时间限制10000ms
内存限制1024MiB
通过 / 提交0/0

题目描述

题目译自 Open Olympiad in Informatics 2022 Day2 T1 「Растягивание плоскости / Plane stretching」。

伊戈尔非常热爱几何学,因此他购买了一个平面,上面标记了 nn 个点,第 ii 个点的坐标为 (xi,yi)(x_i, y_i)。

观察这些点后,伊戈尔很快找到了距离最远的一对点。然而,这对他来说还不够,因此对于 qq 个数字 α1,α2,α3,…,αq\alpha_1, \alpha_2, \alpha_3, \ldots, \alpha_q,他想知道如果将平面沿 xx 坐标拉伸 αj\alpha_j 倍后,点对之间的最大距离会变成多少。

更正式地,伊戈尔有 qq 个查询,在第 jj 个查询中,对于数字 αj\alpha_j,伊戈尔希望找到由 nn 个点组成的新点集(坐标为 (xi⋅αj,yi)(x_i \cdot \alpha_j, y_i))中距离最远的两点之间的距离。请帮助伊戈尔回答这些查询。

输入格式

每个测试点包含多组输入数据。第一行包含两个整数 tt 和 gg (1≤t≤250000,0≤g≤9)(1 \leq t \leq 250000, 0 \leq g \leq 9),分别表示输入数据的组数和子任务编号。接下来是各组数据的描述。

每组数据的第一行包含两个整数 nn 和 qq (2≤n≤500000,1≤q≤500000)(2 \leq n \leq 500000, 1 \leq q \leq 500000),分别表示点的数量和查询的数量。

接下来的 nn 行描述点的坐标,每行包含两个整数 xix_i 和 yiy_i (−109≤xi,yi≤109)(-10^{9} \leq x_i, y_i \leq 10^{9}),表示第 ii 个点的坐标。保证每组数据中所有点的坐标各不相同。

接下来的 qq 行描述查询,每行包含一个实数 αj\alpha_j (1≤αj≤109)(1 \leq \alpha_j \leq 10^{9}),表示第 jj 个查询中 xx 坐标的拉伸系数。

设 NN 为所有数据组中 nn 的总和,QQ 为所有数据组中 qq 的总和。保证 N,Q≤500000N, Q \leq 500000。

输出格式

对于每组输入数据,输出 qq 行,每行包含一个实数,即第 ii 个查询的答案。答案被认为是正确的,如果其绝对误差或相对误差不超过 10−610^{-6}。更正式地,如果 aa 是你的答案,bb 是评委的答案,则应满足 ∣a−b∣max⁡(b,1)≤10−6\frac{|a-b|}{\max(b,1)} \leq 10^{-6}。

2 0
5 2
0 0
1 1
0 2
-1 3
0 4
1
2.5
8 4
0 0
6 11
7 13
4 14
0 15
-4 14
-7 13
-6 11
2
1
1.25
1.5

4.000000
5.385165
28.000000
15.000000
17.500000
21.000000

在第一组输入数据中,拉伸系数为 11 和 2.52.5 时,点的分布如下:

dots1.png

dots2.png

  • 拉伸系数为 11 时,距离最远的点为编号 11 和 55,坐标分别为 (0,0)(0, 0) 和 (0,4)(0, 4)。
  • 拉伸系数为 2.52.5 时,距离最远的点为编号 22 和 44,坐标分别为 (2.5,1)(2.5, 1) 和 (−2.5,3)(-2.5, 3)。

在第二组输入数据中,最大距离由以下点对达成:

  • 第一个查询中,最大距离由编号 33 和 77 的点达成,坐标为 (14,13)(14, 13) 和 (−14,13)(-14, 13);
  • 第二个查询中,最大距离由编号 11 和 55 的点达成,坐标为 (0,0)(0, 0) 和 (0,15)(0, 15);
  • 第三个查询中,最大距离由编号 33 和 77 的点达成,坐标为 (8.75,13)(8.75, 13) 和 (−8.75,13)(-8.75, 13);
  • 第四个查询中,最大距离由编号 33 和 77 的点达成,坐标为 (10.5,13)(10.5, 13) 和 (−10.5,13)(-10.5, 13)。

数据范围与提示

详细子任务附加限制及分值如下表所示。其中子任务 00 是样例。

子任务 分值 附加限制 子任务依赖 备注
11 1212 ni≤10n_i \leq 10,N≤2000N \leq 2000,qi≤10q_i \leq 10,Q≤2000Q \leq 2000 00
22 99 ni≤2000n_i \leq 2000,N≤2000N \leq 2000,qi≤2000q_i \leq 2000,Q≤2000Q \leq 2000 0∼10 \sim 1
33 1313 ni≤5000n_i \leq 5000,N≤5000N \leq 5000,qi≤10000q_i \leq 10000,Q≤10000Q \leq 10000 0∼20 \sim 2
44 1111 ni≤100000n_i \leq 100000,N≤100000N \leq 100000,qi≤100000q_i \leq 100000,Q≤100000Q \leq 100000 随机点(坐标在 −109-10^{9} 到 10910^{9} 间均匀随机选择)
55 88 44
66 1212 ni≤5000n_i \leq 5000,N≤5000N \leq 5000,qi≤100000q_i \leq 100000,Q≤100000Q \leq 100000 0∼30 \sim 3
77 1111 ni≤5000n_i \leq 5000,N≤5000N \leq 5000 0∼3,60 \sim 3, 6
88 1010 ni≤100000n_i \leq 100000,N≤100000N \leq 100000,qi≤100000q_i \leq 100000,Q≤100000Q \leq 100000 0∼4,60 \sim 4, 6
99 1414 0∼80 \sim 8