AT_tenka1_2013_qualB_e 天下一最短路コンテスト

题目描述

你是天下一最短路竞赛的主办者。 天下一最短路竞赛按照如下规则举办: - 在二维平面上给定 $N$ $(1 \leq N \leq 100)$ 个点 $p_i$ $(1 \leq i \leq N)$。 - 点 $p_i$ 的 $x$ 坐标为 $x_i$,$y$ 坐标为 $y_i$。 - 点的数量 $N$ 最大为 $100$。 - 各坐标的值 $x_i$、$y_i$ 均为不超过 $10,000$ 的非负整数。 - 所有点的坐标均不相同。即当 $i \neq j$ 时,$(x_i, y_i) \neq (x_j, y_j)$。 - 从 $p_1$ 出发,输出一条经过所有点的路径。 - 路径长度最短的人获胜。 高桥君打算参加天下一最短路竞赛,但他觉得自己赢不了对手——KLab 的超级程序员タクヤ君。タクヤ君的程序是开源的,高桥君打算通过改造它来争取胜利。 タクヤ君的程序如下: - 首先选择点 $p_1$,只要还有未被选择的点,按以下步骤选择下一个点: - 从最后选择的点出发,选择距离最近的、尚未被选择的点。 - 如果有多个距离最近的点,则选择编号最小的那个(点 $p_i$ 的编号为 $i$)。 - 按照被选择的顺序,用线段连接这些点,输出这条路径。 高桥君改造后的程序如下: - 首先选择点 $p_1$,只要还有未被选择的点,按以下步骤选择下一个点: - 如果未被选择的点数不少于 $3$,则从最后选择的点出发,选择距离第二近的点。 - 此时,即使最近的点在最后选择的点与第二近的点连线的直线上,也不认为最近的点被选择。 - 如果未被选择的点数不超过 $2$,则从最后选择的点出发,选择最近的点。 - 注意,最近的点会被选择两次,而不是只在最后一次被选择。 - 如果有多个距离相同的点,则编号小的点视为更近。 - 按照被选择的顺序,用线段连接这些点,输出这条路径。 让这两个程序对战后,几乎每次高桥君都输了。但这样高桥君太可怜了,所以你需要为高桥君准备一个至少能打平的输入数据集,并且点数尽可能多。 输入无需给出。请输出一个使高桥君至少能打平的数据集,输出格式如下: > $N$ > $x_1$ $y_1$ > $x_2$ $y_2$ > ... > $x_N$ $y_N$ 1. 第 $1$ 行输出数据集的点数 $N$ $(1 \leq N \leq 100)$。 2. 第 $2$ 行起,每行输出一个点的 $x$ 坐标 $x_i$ 和 $y$ 坐标 $y_i$,用空格分隔,共 $N$ 行,$0 \leq x_i, y_i \leq 10,000$。 3. 只要数据集满足条件,就能获得 $N \times 2$ 分。 如果两个程序输出的路径长度的绝对差或相对差不超过 $10^{-9}$,则视为平局。 即,若两程序输出的路径长度分别为 $d_1$、$d_2$,则若 $\frac{|d_1 - d_2|}{\max(1, d_1, d_2)} \leq 10^{-9}$,则视为平局。 输出末尾需换行。 你也可以直接提交事先计算好的输出结果,此时请选择 Text(cat) 作为提交语言。 ``` 1 1 1 ``` - 当点数为 $1$ 时,两程序输出的路径长度均为 $0$,为平局。 - 提交该输出可获得 $2$ 分。 ``` 5 4 6 2 5 6 10 1 2 1 6 ``` - タクヤ君的程序得到的路径为 $(4,6) \to (2,5) \to (1,6) \to (1,2) \to (6,10)$,路径长度约为 $17.084$。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/AT_tenka1_2013_qualB_e/e3a188bf2c19d137a39673f73d7874c0043d2fc1.png) 图 $1$ タクヤ君的程序路径 - 高桥君的程序得到的路径为 $(4,6) \to (1,6) \to (1,2) \to (2,5) \to (6,10)$,路径长度约为 $16.565$。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/AT_tenka1_2013_qualB_e/c0ac09c104567967ebe2486f46e232f9268d35b6.png) 图 $2$ 高桥君的程序路径 - 提交该输出可获得 $10$ 分。

输入格式

无输入。

输出格式

第 $1$ 行输出点的数量 $N$。 第 $2$ 行起,每行输出一个点的 $x$ 坐标 $x_i$ 和 $y$ 坐标 $y_i$,用空格分隔,共 $N$ 行。 输出末尾需换行。

说明/提示

无。 由 ChatGPT 4.1 翻译