QOJ.ac

QOJ

Límite de tiempo: 2 s Límite de memoria: 512 MB Puntuación total: 110

#8126. 餐厅

Estadísticas

来到塞格德(Szeged),Malnar 先生像往常一样,有义务去了解当地文化,因此他要尝试所有的传统美食、烹饪特色菜和当地饮品。

我们可以将塞格德想象成 $n$ 个有趣的地点,编号从 $1$ 到 $n$,由 $n-1$ 条双向道路连接,使得每两个地点之间都存在一条路径。令人惊奇的是,Malnar 先生走过每条道路正好需要 $1$ 分钟。在地点内行走的时间可以忽略不计。

Malnar 先生有一份他想参观的 $m$ 家餐厅的列表。它由 $m$ 个正整数组成,其中第 $i$ 个数字表示第 $i$ 家餐厅所在的有趣地点。

一个问题是,Malnar 先生必须在餐厅用餐后立即在甜品店吃冰淇淋。另一个问题是他拒绝两次访问同一家甜品店。

幸运的是,他早有准备,因为他熟悉 $m$ 家甜品店,并记下了它们的位置,列表由 $m$ 个正整数组成,其中第 $i$ 个数字表示第 $i$ 家甜品店所在的有趣地点。

Malnar 先生旅途劳累,不想走多余的路,所以他请你计算他总共需要走多少路,并给出访问餐厅和甜品店的顺序,因为他有能力在它们之间自行导航。

Malnar 先生目前位于编号为 $1$ 的有趣地点,并且必须在行程结束时回到该地点。

输入格式

第一行包含整数 $n$ 和 $m$ ($1 \le m \le n \le 3 \cdot 10^5$),分别表示有趣地点的数量和餐厅/甜品店的数量。

第二行包含 $m$ 个整数 $a_i$ ($1 \le a_i \le n, a_i \neq a_j$ 对于所有 $i \neq j$),即餐厅列表。

第三行包含 $m$ 个整数 $b_i$ ($1 \le b_i \le n, b_i \neq b_j$ 对于所有 $i \neq j$),即甜品店列表。

接下来的 $n-1$ 行,每行包含两个整数 $x_i$ 和 $y_i$ ($1 \le x_i, y_i \le n$),表示在有趣地点 $x_i$ 和 $y_i$ 之间有一条道路。

输出格式

第一行输出 $t$,即 Malnar 先生访问所有餐厅和甜品店并最终回到地点 $1$ 所需的总步行时间(以分钟为单位)。

第二行输出 $2m$ 个整数 $v_i$,即访问餐厅和甜品店的顺序。

奇数位置的数字代表餐厅,应构成前 $m$ 个正整数的一个排列。偶数位置的数字代表甜品店,也应构成前 $m$ 个正整数的一个排列。

按照给定的顺序访问地点,并在每两个地点之间采取最短路径返回起始位置,总耗时应正好为 $t$ 分钟。

如果存在多种最优顺序,输出任意一种即可。

子任务

子任务 分值 数据范围
1 20 $n \le 5\,000, m \le 10$
2 20 $x_i = i, y_i = i + 1$ 对于所有 $i = 1, \dots, n-1$
3 30 $n \le 5\,000$
4 40 无附加限制

如果你的程序在某些测试点上第一行输出正确,但第二行的顺序不正确,该测试点将获得 30% 的分数。

样例

输入格式 1

3 1
2
3
1 2
1 3

输出格式 1

4
1 1

说明

Malnar 先生首先需要走 1 分钟到达位于地点 2 的唯一餐厅,然后走 2 分钟到达位于地点 3 的唯一甜品店,最后走 1 分钟回到地点 1。Malnar 先生总共步行 $1+2+1=4$ 分钟。

输入格式 2

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

输出格式 2

18
3 1 4 2 2 4 1 3

说明

Malnar 先生访问餐厅和甜品店的顺序如下:地点 4 的餐厅(2 分钟),地点 4 的甜品店(0 分钟),地点 6 的餐厅(3 分钟),地点 5 的甜品店(1 分钟),地点 3 的餐厅(1 分钟),地点 9 的甜品店(3 分钟),地点 2 的餐厅(3 分钟),地点 8 的甜品店(3 分钟)。在地点 8 的甜品店吃完冰淇淋后,他回到地点 1(2 分钟)。Malnar 先生总共步行 $2 + 0 + 3 + 1 + 1 + 3 + 3 + 3 + 2 = 18$ 分钟。

输入格式 3

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

输出格式 3

24
4 4 5 5 3 3 2 2 1 1

说明

Malnar 先生访问餐厅和甜品店的顺序如下:地点 7 的餐厅(6 分钟),地点 9 的甜品店(2 分钟),地点 8 的餐厅(1 分钟),地点 10 的甜品店(2 分钟),地点 6 的餐厅(4 分钟),地点 4 的甜品店(2 分钟),地点 5 的餐厅(1 分钟),地点 2 的甜品店(3 分钟),地点 3 的餐厅(1 分钟),地点 1 的甜品店(2 分钟)。吃完最后一个冰淇淋后,他已经在地点 1,所以他不需要移动。Malnar 先生总共步行 24 分钟。

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.