QOJ.ac

QOJ

Límite de tiempo: 6 s Límite de memoria: 256 MB Puntuación total: 100

#3858. 系统化推销员

Estadísticas

一位旅行推销员收到了一份他必须在单次行程中访问的城市列表。他可以在任何城市开始和结束他的行程,只要他至少访问每个城市一次即可。他不必在同一个城市开始和结束。这位旅行推销员注意到,他的同行们在规划和寻找最优路线时花费了太多时间。因此,他决定采取一种不同的、更系统的方法来规划他的路线。

他首先将所有城市分为左半部分和右半部分。如果城市数量为奇数,则右半部分比左半部分多一个城市。然后,他会选择其中一个半部分,并在访问另一个半部分的任何城市之前,先访问该半部分中的所有城市。

为了访问所选左/右半部分中的城市,他会将这组城市分为下半部分和上半部分。如果该集合中的城市数量为奇数,则上半部分将包含一个额外的城市。同样,他会先访问这些半部分中的一个,然后再访问另一个半部分中的任何城市。

他将继续应用这种交替进行水平和垂直平分城市的逻辑,直到获得完整的行程路径。计算推销员通过这种方式可以获得的最短路径。

输入格式

第一行包含推销员想要访问的城市数量 $N$。接下来的 $N$ 行给出了这些城市的位置。每个城市的位置由一对空格分隔的整数坐标 $X_i$ 和 $Y_i$ 定义,它们描述了其在平面上的位置。保证所有城市的 $X_i$ 坐标各不相同。$Y_i$ 坐标也同样各不相同。

数据范围

  • $1 \le N \le 1000$
  • $0 \le X_i, Y_i \le 10^6$

输出格式

在第一行,打印推销员路径的最小长度。如果该长度与官方解的误差不超过 $10^{-4}$,则视为正确。在第二行,输出一个空格分隔的城市列表,表示推销员访问城市的顺序。城市按照输入中给出的顺序从 $1$ 到 $N$ 编号。如果存在多种方案,你可以输出其中任意一种。

样例

输入 1

6
5 1
9 6
2 5
3 3
10 4
7 2

输出 1

13.142182
3 4 1 6 5 2

说明 1

推销员首先访问左半部分(城市 1、3 和 4),然后访问右半部分(城市 2、5 和 6)。

为了访问城市 1、3 和 4,他先访问上半部分(城市 3 和 4),然后再访问下半部分(城市 1)。上半部分中的城市被分为左半部分(城市 3,先访问)和右半部分(城市 4,后访问)。

城市 2、5 和 6 被分为下半部分(城市 6)和上半部分(城市 2 和 5)。在这里,推销员先访问下半部分。他继续前往上半部分,在那里他先访问右半部分(城市 5),最后访问左半部分(城市 2)。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.