luogu#P16390. [IATI 2024] Travel
[IATI 2024] Travel
题目描述
Yan 喜欢开着他的车在 Iatiland 旅行。
由于 Yan 旅行了很长时间,他已经想出了对整个国家地图的描述。Iatiland 的城市编号从 到 ,城市之间有双向的直接道路连接不同的城市。对于每个城市,他有一个从该城市通过一条直接道路可以到达的城市列表。数据保证,任意两个城市之间都存在唯一的路径。注意,该路径可能不是直接的,即可能会经过多条直接道路。注意到这意味着直接道路的总数为 条。
Yan 喜欢系统地旅行,因此他想出了一个在周游全国时将遵循的算法。
他在第 天从城市 开始他的旅程,之后的每一天他都会从他当前所在的城市沿一条直接道路出发。他选择的道路总是当前城市列表中的第一条道路。然而,这个简单的过程对 Yan 来说显得相当无聊,所以在选好下一次将走的道路之后,他会将其从列表的开头移除,并将其追加到列表末尾。
Yan 旅行的主要目的是拜访他的朋友们并和他们闲聊。他有 个想要拜访的朋友,编号从 到 ,每个朋友 住在城市 。只有当 Yan 当前正处于城市 时,他才能拜访朋友 。此外,Yan 想要按照给定的顺序拜访他的朋友们,即他不能在拜访朋友 之前先拜访朋友 。
请帮助 Yan 求出他按正确顺序拜访完所有朋友所需的最少天数。
输入格式
标准输入的第一行包含 个整数 —— 和 。
接下来是 行,在第 行中,首先给出 —— 从城市 出发的直接道路条数,然后给出 个整数 —— 与城市 以直接道路相连的城市的初始列表。
接下来一行包含 个整数 —— ,即 Yan 的朋友们居住的城市编号。
输出格式
在标准输出上的一行中输出所需的最少天数。
4 4
2 2 3
1 1
2 1 4
1 3
2 1 1 4
9
提示
样例解释
Yan 的旅程将花费 天,依次经过城市 $1,\textbf{2},\textbf{1},3,\textbf{1},2,1,3,\textbf{4}$。他将在第 天见到朋友 ,第 天见到朋友 ,第 天见到朋友 ,第 天见到朋友 。
数据范围
子任务
| 子任务 | 分数 | 附加约束 | ||
|---|---|---|---|---|
| 无 | ||||
| 无 | ||||
只有在成功通过某个子任务中指定的所有测试数据时,该子任务的分数才会被给出。
翻译由 DeepSeek V4 Pro 完成