luogu#P11483. [NordicOI 2021] The Elk

[NordicOI 2021] The Elk

题目背景

翻译自 NordicOI2021B 题。

NordicOI2021 官网,需要使用 Wayback machine 查看。

题目描述

你现在在森林当中。这片森林里还有一头母牛和一只小牛。你知道,站在小牛和母牛之间是危险的。

我们将森林抽象成由 nn 个点组成,这些点之间有 mm 条双向边。点的编号从 0n10 \sim n-1,边的编号为 0m10 \sim m-1

我们将从母牛到小牛的路径定义为一系列的点 p0pkp_0 \sim p_k,使:

  1. p0p_0 为母牛的位置。

  2. pkp_k 为小牛的位置。

  3. 对于每个满足 0i<k0 \le i < kpip_ipi+1p_{i+1} 间有直接连边。

  4. 和点 33 连接的边在不会重复出现在路径上,但是点可以重复。

在这条路径上的所有的点都是危险的,因为母牛会认为你在她和小牛之间。你需要找到所有安全的点。

输入格式

第一行四个整数 n,m,A,Bn,m,A,B,其中 AABB 分别为母牛和小牛的位置。

接下来 mm 行,编号从 0m10 \sim m-1,表示 mm 条边。每行两个整数 ui,viu_i,v_i,表示边的两个端点。

输出格式

第一行应输出一个整数 SS,表示安全位置的数量。

接下来 SS 行表示安全位置的编号,你需要确保输出的 SS 个整数依次递增。

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

提示

Subtask 分数 约束
Subtask 00 10 n10n \le 10m45m \le 45
Subtask 11 20 m=n1m=n-1,保证图连通
Subtask 22 30 n200n \le 200m500m \le 500
Subtask 33 40 无特殊限制

对于 100%100\% 的数据,2n500002\le n \le 500002m1000002 \le m \le 1000000ui,vi<n0 \le u_i,v_i <nuiviu_i \neq v_i

无重边,保证小牛和母牛连通。