B. Horizon Scanning

    传统题 文件IO:Scanning 1000ms 1024MiB

Horizon Scanning

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

冷笑话雷达是个谐音。

解释:这其实是冷知识,不是冷笑话。这两个概念之间的混淆才是好笑的地方。

-大豆鸡

哈娜最近需要开发一套雷达系统,以监控她所管理的群岛上的异常活动。

海洋中有 nn 个岛屿,其中 ii 个岛屿位于坐标 (xi,yi)(x_i, y_i) 处,可将其视为平面上的一个点。假设雷达的扫描角度范围为 α\alpha 。当雷达旋转到角度 θ\theta 时,它可以监测到位于角度范围 $[\theta - \frac{\alpha}{2}, \theta + \frac{\alpha}{2}]$ 内的所有岛屿。

哈娜目前资金短缺,因此她希望将雷达的建造成本降到最低。她想知道,当雷达放置在原点 (0,0)(0,0) 时,最小扫描角度 α\alpha 应该是多少,以确保在任何角度 θ\theta 下,雷达都能监测到至少 kk 个岛屿。

输入

每个测试文件包含多个测试用例。第一行包含测试用例的数量 TT ( 1≤T≤1041 \leq T \leq 10^4 )。每个测试用例的说明如下。

每个测试用例的第一行包含两个整数 nn 和 kk ( 1≤k≤n≤2×1051 \leq k \leq n \leq 2 \times 10^5 ),分别代表雷达在任何时候必须监控的岛屿总数和最小岛屿数。

接下来的 nn 行分别包含两个整数 xix_i 和 yiy_i ( ∣xi∣,∣yi∣≤109|x_i|, |y_i| \leq 10^9 ),代表一个岛屿的位置。可以保证任何两个岛屿的坐标都不相同,并且都不位于原点。

对于每个测试文件,保证所有测试用例的 nn 之和不超过 2×1052 \times 10^5 。

输出

对于每个测试用例,输出一个十进制分数,代表雷达扫描的最小角度(以弧度为单位)。

如果绝对或相对误差不超过 10−610^{-6} ,则认为答案正确。

形式上,让你的答案为 aa ,陪审团的答案为 bb 。当且仅当 ∣a−b∣max⁡(1,∣b∣)≤10−6\frac{|a - b|}{\max{(1, |b|)}} \leq 10^{-6} 时,你的答案被接受。

5
1 1
0 1
8 2
1 0
1 1
0 1
-1 1
-1 0
-1 -1
0 -1
1 -1
4 2
-1 1
0 1
0 2
1 1
4 2
-1000000000 0
-998244353 1
998244353 1
1000000000 0
3 1
0 1
0 2
0 -1
6.2831853072
1.5707963268
5.4977871438
3.1415926546
3.1415926536

注

对于示例中的第一个测试案例,平面上只有一个位于 (0,1)(0,1) 的岛屿。为确保至少有一座岛屿始终在雷达监测范围内,雷达的监测范围必须设置为 360∘360^{\circ} ,即 2π2 \pi (弧度)。

对于示例中的第二个测试案例,平面上有 88 个岛屿,每对岛屿之间相隔 45∘45^{\circ} 。如果雷达的测距小于 90∘90^{\circ} ,那么当雷达的一条边界刚刚经过一个岛屿时,雷达只能监测到一个岛屿(如左图所示)。因此,雷达的最小探测距离为 90∘90^{\circ} ,以确保至少有两个岛屿始终在探测范围内。

Example 22 插图