#aBC168D. [ABC168D] .. (Double Dots)

[ABC168D] .. (Double Dots)

AT_abc168_d [ABC168D] .. (Double Dots)

题目描述

在某个地方,有一个洞窟。

洞窟里有 NN 个房间和 MM 条通道,房间编号为 11NN,通道编号为 11MM。第 ii 条通道连接着房间 AiA_i 和房间 BiB_i,且是双向的。任意两个房间之间都可以通过若干条通道互相到达。房间 11 是洞窟入口的特殊房间。

由于洞窟内光线昏暗,决定在除房间 11 以外的每个房间都设置一个“路标”。每个房间的路标会指向与该房间直接通过通道相连的某一个房间。

由于洞窟内部危险,希望对于除房间 11 以外的每个房间,都满足以下条件:

  • 从该房间出发,不断“查看当前房间的路标,并移动到路标所指的房间”,能够以最少的移动次数到达房间 11

请判断是否存在一种满足目标的路标设置方法。如果存在,请输出其中一种方案。

输入格式

输入以如下格式从标准输入读入。

NN MM
A1A_1 B1B_1
A2A_2 B2B_2
\vdots
AMA_M BMB_M

输出格式

如果不存在满足目标的路标设置方法,输出 No

如果存在,输出 NN 行。第 11 行输出 Yes,第 ii 行(2iN2 \leq i \leq N)输出房间 ii 的路标所指向的房间编号。

输入输出样例 #1

输入 #1

4 4
1 2
2 3
3 4
4 2

输出 #1

Yes
1
2
2

输入输出样例 #2

输入 #2

6 9
3 4
6 1
2 4
5 3
4 6
1 5
6 2
4 5
5 6

输出 #2

Yes
6
5
5
1
1

说明/提示

限制条件

  • 所有输入均为整数。
  • 2N1052 \leq N \leq 10^5
  • 1M2×1051 \leq M \leq 2 \times 10^5
  • 1Ai,BiN (1iM)1 \leq A_i, B_i \leq N\ (1 \leq i \leq M)
  • AiBi (1iM)A_i \neq B_i\ (1 \leq i \leq M)
  • 任意两个房间之间都可以通过若干条通道互相到达。

样例解释 1

如输出样例所示设置路标时:

  • 从房间 22 出发,(2)1(2) \to 1,移动 11 次,为最小值。
  • 从房间 33 出发,(3)21(3) \to 2 \to 1,移动 22 次,为最小值。
  • 从房间 44 出发,(4)21(4) \to 2 \to 1,移动 22 次,为最小值。

因此,按照输出样例设置路标即可满足目标。

样例解释 2

如果存在多种满足条件的方案,输出其中任意一种均可。

由 ChatGPT 4.1 翻译