#HK4242. 「NordicOI 2021」The Elk
「NordicOI 2021」The Elk
题目描述
题目译自 NordicOI 2021 T2 「Pearls」
你现在在一片森林里。在这片森林里有一对麋鹿——一只母鹿和她的小鹿。众所周知,站在母鹿和小鹿之间是很危险的,但你并不是很清楚如何避免这种情况。
我们将这片森林建模为由 个地点和 条直接道路组成的网络。这些道路可以双向通行。地点编号从 到 ,道路编号从 到 。
我们定义从母鹿到小鹿的路径为一系列地点 ,满足以下条件:
- 是母鹿所在的位置
- 是小鹿所在的位置
- 对于每个满足 的 ,地点 和 之间有直接道路
- 路径中不能走过重复的道路,但允许地点重复
显然,任何位于这种路径上的地点都是危险的,因为母鹿可能会认为你站在她和小鹿之间。你的任务是找出所有安全的地点,也就是不在任何这种路径上的地点。
输入格式
第一行包含四个整数 。 和 分别是地点和直接道路的数量, 和 分别是母鹿和小鹿当前所在的位置。
接下来的 行,每行描述一个道路。第 行包含两个整数 和 ,表示第 个道路在地点 和 之间。
输出格式
输出的第一行应包含一个整数 ,表示森林中安全的地点数量。
接下来的 行应列出所有安全的地点,每行一个,按编号升序排列。
9 10 0 7
1 0
2 0
0 3
5 4
4 3
4 6
3 6
6 7
7 3
7 8
4
1
2
5
8
8 8 2 3
0 1
0 2
1 2
2 3
3 4
3 5
4 5
6 7
2
6
7
数据范围与提示
对于所有输入数据,满足:
- 对于所有 ,
- 任意一对地点之间最多只有一个直接道路
- 母鹿和小鹿之间总会有至少一条路径
详细子任务附加限制及分值如下表所示。
| 子任务 | 分值 | 附加限制 |
|---|---|---|
| , | ||
| 且图是连通的 | ||
| , | ||
| 无附加限制 |