#P12195. [NOISG 2025 Prelim] Itinerary
[NOISG 2025 Prelim] Itinerary
Description
科学委员会计划访问 个城市。这 个城市通过恰好 条道路连接,使得可以使用这些道路在所有城市对之间移动。第 条道路建在城市 和 之间。
每个城市都有自己的机场。为了开始旅程,委员会将从新加坡飞往其中一个城市。为了尽可能高效地利用旅程,委员会希望通过每条道路恰好两次(每个方向一次)来访问每个城市至少一次,然后从他们最终到达的城市飞回家。满足这个条件的旅程称为巡游。

例如,设上图表示一个有 个城市的地图。从城市 开始的一种可能的巡游是 $1 \to 3 \to 5 \to 3 \to 4 \to 2 \to 8 \to 2 \to 4 \to 6 \to 4 \to 7 \to 4 \to 3 \to 1$。注意这个巡游总共访问了所有城市 次(等于 ),并且以起始城市(城市 )结束。可以证明,对于所有可能的城市地图,所有巡游都满足这两个性质。
委员会还希望访问 个按顺序从事件 到事件 发生的活动。事件 将在城市 举行。一个城市可以举办零个、一个或多个活动,但不会有两个连续的活动在同一个城市举行,即 。
允许委员会访问所有活动的巡游必须按顺序访问城市 ,但不必连续。这样的巡游称为行程。形式上,设 为某个巡游访问的城市序列。当且仅当 是 的一个子序列时,该巡游是一个行程。也就是说,可以通过删除 中的零个或多个元素并保持剩下元素的顺序,得到 。仍以上面的例子为例,假设 且 ,那么巡游 $1 \to \textbf{3} \to \textbf{5} \to 3 \to 4 \to \textbf{2} \to 8 \to 2 \to 4 \to 6 \to 4 \to \textbf{7} \to 4 \to 3 \to 1$ 是一个行程,因为城市 按顺序在巡游中被访问(用粗体标记并下划线)。
委员会仍在决定从哪个城市出发,但他们同意:如果存在某个以该城市出发的行程,那么该城市就是一个好的出发选择。请帮助委员会判断对于所有城市,是否存在至少一个以该城市出发的行程。
Input Format
你的程序必须从标准输入读取数据。
输入的第一行包含两个用空格分隔的整数 和 ,分别表示城市数量和事件数量。
接下来的 行中每行包含两个用空格分隔的整数。第 行包含 和 ,表示第 条道路连接的两个城市。
最后一行输入包含 个用空格分隔的整数 ,表示举办活动的城市。
Output Format
你的程序必须将结果打印到标准输出。
输出应包含 行。如果存在以城市 出发的行程,那么第 行应包含一个整数 。否则,输出一个整数 。
8 4
1 3
2 4
3 4
4 6
5 3
2 8
7 4
3 5 2 7
1
0
1
1
0
1
1
0
8 4
1 3
2 4
3 4
4 6
5 3
2 8
7 4
3 2 5 7
0
0
0
0
0
0
0
0
4 7
1 2
1 3
1 4
2 1 2 1 2 1 2
0
0
0
0
5 2
1 2
2 3
3 4
4 5
2 4
1
1
1
1
1
Hint
子任务
对于所有测试用例,输入将满足以下约束条件:
- 对所有
- 对所有
- 对所有
- 可以通过道路在所有城市对之间移动。
你的程序将在满足以下特殊性质的输入数据上进行测试:
| 子任务 | 分值 | 特殊性质 |
|---|---|---|
| 样例 | ||
| 无 | ||
样例 1 解释
此样例适用于子任务 。
这个样例在题目中已经作为示例说明。
存在以城市 和 开始的行程。在题目中已给出一个以城市 开始的行程。
另一方面,可以证明城市 和 没有任何行程可以以它们为起点。
样例 2 解释
此样例适用于子任务 。
这个测试用例与题目示例相同,除了 和 被交换了。此时不存在任何行程。
样例 3 解释
此样例适用于子任务 。
样例 4 解释
此样例适用于子任务 。
京公网安备 11011102002149号