P13073 [GCJ 2020 Finals] Musical Cords

题目描述

Lauren 正尝试用竖琴演奏最美妙的音符。竖琴是一个半径为 $\mathbf{R}$ 厘米的圆形乐器。要演奏一个音符,必须在圆周上两个不同的固定点之间连接一根琴弦,并通过拨动琴弦发声。 圆周上共有 $\mathbf{N}$ 个固定点可用于连接琴弦。第 $i$ 个固定点的位置为从圆周最右侧点顺时针方向 $\mathbf{D}_i$ 纳度(1 纳度 = $10^{-9}$ 度)处。 不同固定点使用的固定技术不同。第 $i$ 个固定点需要消耗 $\mathbf{L}_i$ 厘米的琴弦用于固定。连接两个不同固定点 $i$ 和 $j$ 的琴弦总长度必须恰好为 $\mathbf{L}_i + \mathbf{L}_j + \text{distance}(i, j)$ 厘米。其中 $\text{distance}(i, j)$ 表示第 $i$ 个和第 $j$ 个固定点之间的几何弦长(即两点间的欧几里得距离)。 Lauren 认为琴弦越长,音符听起来越美妙。请问 Lauren 的竖琴可以使用的琴弦中,最长的 $\mathbf{K}$ 个长度分别是多少?

输入格式

第一行输入测试用例数 $\mathbf{T}$。每个测试用例包含: 第一行三个整数 $\mathbf{N}$、$\mathbf{R}$ 和 $\mathbf{K}$:固定点数量、竖琴半径(厘米)和 Lauren 需要查询的琴弦长度数量。 接下来 $\mathbf{N}$ 行描述固定点,每行两个整数 $\mathbf{D}_i$ 和 $\mathbf{L}_i$,分别表示第 $i$ 个固定点的位置(纳度)和固定所需琴弦长度(厘米)。

输出格式

对每个测试用例,输出一行 `Case #x: y1 y2 ... yK`,其中 $x$ 为测试用例编号(从 1 开始),$y_n$ 为所有 $\mathbf{N} \times (\mathbf{N}-1)/2$ 根可能琴弦的长度按非递增排序后的第 $n$ 个值。 每个 $y_n$ 允许存在绝对或相对误差不超过 $10^{-9}$。

说明/提示

**样例解释** 样例测试集 1 符合测试集 1 的限制条件。其他不符合该限制的样例可能出现在测试集 2 中。 注意:测试集 1 的样例中 $\mathbf{L}_i$ 值是为便于理解而设定的非随机值。您的解法必须通过这些样例。 在样例 #1 中,所有固定点的 $\mathbf{L}_i$ 值相同,因此应选择弦长最长的点对(即圆的水平直径,长度 4 厘米)。总长度为 $4 + 3 + 3 = 10$ 厘米。 在样例 #2 中,第四和第五个点非常接近第三个点,但 $\mathbf{L}$ 值较小。最优解来自前三个点的连接: - 第一和第二个点:长度 $10\sqrt{2} + 8 + 7 \approx 29.142136$ - 第一和第三个点:长度 $\approx 19.923894 + 8 + 9 \approx 36.923894$ - 第二和第三个点:长度 $\approx 12.855726 + 7 + 9 \approx 28.855726$ 因此选择第一和第三个点获得最大长度。 样例测试集 2:注意存在三组点对并列产生第 9 长的琴弦。不同琴弦可以交叉,因为 Lauren 每次只演奏一个音符。 **数据范围** - $1 \leq \mathbf{T} \leq 100$ - $\mathbf{N} = 150000$ 的用例不超过 10 个 - $5 \leq \mathbf{N} \leq 10^4$(当 $\mathbf{N} \neq 150000$ 时) - $1 \leq \mathbf{R} \leq 10^9$ - $0 \leq \mathbf{D}_1$ - $\mathbf{D}_i < \mathbf{D}_{i+1}$(对所有 $i$) - $\mathbf{D}_N < 360 \times 10^9$ **测试集 1(15 分,可见判定)** - $\mathbf{L}_i$ 在 1 到 $10^9$ 之间独立均匀随机生成 - $\mathbf{K} = 1$ **测试集 2(27 分,隐藏判定)** - $1 \leq \mathbf{L}_i \leq 10^9$(生成方式无限制) - $\mathbf{K} = 10$ 翻译由 DeepSeek V3 完成