CF592D Super M

题目描述

怪兽 Ari 不是一只普通的怪兽。她正是 Byteforces 的超级英雄 Super M 的隐藏身份。Byteforces 是由 $n$ 个城市组成的国家,这些城市之间通过 $n-1$ 条双向道路连接。每条道路恰好连接两座不同的城市,而且整个道路系统的设计保证可以从任意城市通过这些道路到达另一座城市。现在有 $m$ 个城市正遭受人类的袭击。因此,Ari……也就是 Super M 必须立刻前往每一个被攻击的城市驱赶那些坏人类。Super M 只能通过这些道路在城市之间穿梭。此外,每经过一条道路恰好需要 $1$ 克龙(Byteforces 所用的时间单位)。 不过,现在 Super M 并不在 Byteforces——她正在毗邻的国家 Codeforces 参加训练营。幸运的是,Codeforces 有一台特殊的装置,能让她瞬间传送到 Byteforces 的任意一个城市。而返回的路太远,所以在本题中传送只能使用一次。 你需要帮助 Super M 计算她最开始应该传送到哪个城市,才能以最短的时间(以克龙为单位)完成驱赶全部坏人的任务。同时,告诉她需要的最短时间以方便她安排返回 Codeforces 的路程。

输入格式

输入的第一行包含两个整数 $n$ 和 $m$($1 \leq m \leq n \leq 123456$),分别表示 Byteforces 的城市数和被攻击的城市数。 接下来有 $n-1$ 行,描述这 $n$ 个城市之间的道路系统。每行包含两个城市编号 $u_i$ 和 $v_i$($1 \leq u_i, v_i \leq n$),表示道路 $i$ 连接编号为 $u_i$ 和 $v_i$ 的两座城市。 最后一行为 $m$ 个不同的整数,表示被攻击城市的编号。这些编号没有固定顺序。

输出格式

第一行输出 Super M 应该传送到的城市编号。如果有多个最优解,输出编号最小的城市。 第二行输出驱赶所有被攻击城市人类所需的最少时间(以克龙为单位)。 注意,正确答案总是唯一的。

说明/提示

在第一个样例中,有两种方式可以在 $3$ 克龙时间内完成 Super M 的任务。分别如下图所示: 但是,应选择编号更小的城市作为传送起点。 由 ChatGPT 5 翻译