AT_arc211_d [ARC211D] Michishirube

题目描述

给定一个有 $N$ 个顶点和 $M$ 条边的简单连通无向图。第 $i$ 条边 $(1\leq i\leq M)$ 为无向边,连接顶点 $U_i$ 和 $V_i$。 请按如下规定在所有顶点上放置指示牌: - 除顶点 $1$ 外,每个顶点放置一个蓝色指示牌,指向它的一个相邻顶点。 - 除顶点 $2$ 外,每个顶点放置一个黄色指示牌,指向它的一个相邻顶点。 同一顶点的两个指示牌指向的顶点不能是同一个。 判断是否存在一种指示牌的放置方式,使得满足以下条件,如果存在,输出其中一种方案: - 从除顶点 $1$ 外的任意一个顶点出发,无限次沿着蓝色指示牌指向的顶点前进,最终必然到达顶点 $1$。 - 从除顶点 $2$ 外的任意一个顶点出发,无限次沿着黄色指示牌指向的顶点前进,最终必然到达顶点 $2$。 如果存在多种满足条件的放置方式,你可以输出其中任意一种。

输入格式

输入以如下格式从标准输入给出: > $N$ $M$ $U_1$ $V_1$ $U_2$ $V_2$ > $\vdots$ > $U_M$ $V_M$

输出格式

如果不存在满足条件的放置方法,只需输出一行 `No`。 如果存在,输出 $N+1$ 行。 第一行输出 `Yes`。 第二行输出顶点 $1$ 上黄色指示牌指向的顶点的编号。 第三行输出顶点 $2$ 上蓝色指示牌指向的顶点的编号。 第 $i$ 行($4\leq i\leq N+1$)输出两个用空格分隔的整数,分别为顶点 $i-1$ 上蓝色指示牌指向的顶点的编号,以及黄色指示牌指向的顶点的编号。 如果存在多种方案,你可以输出其中任意一种。

说明/提示

### 样例解释 1 此处指示牌的放置方式如图所示。例如,从顶点 $3$ 出发: - 遵循蓝色指示牌前进,路径为 $3\rightarrow 4\rightarrow 5\rightarrow 1$,最终到达顶点 $1$。 - 遵循黄色指示牌前进,路径为 $3\rightarrow 1\rightarrow 5\rightarrow 4\rightarrow 6\rightarrow 2$,最终到达顶点 $2$。 同样可以验证,从顶点 $2$ 遵循蓝色指示牌也可以到达 $1$,从顶点 $1$ 遵循黄色指示牌也可以到达 $2$,其他顶点也都满足条件。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/AT_arc211_d/94f075830cda0a3e14bdd1f8ffb2f42bd89d75bdce751ea5660ad6173b882f00.png) 虽然存在多种方案,但例如顶点 $3$ 上的蓝色指示牌和黄色指示牌都不能指向顶点 $4$,因为同一顶点两个指示牌不允许指向同一个顶点。 ### 样例解释 2 不存在满足条件的指示牌放置方式。 ### 约束条件 - $2\leq N\leq 2\times 10^5$ - $1\leq M\leq 3\times 10^5$ - $1\leq U_i < V_i\leq N$ 且 $1\leq i\leq M$ - 给定图保证简单且连通。 - 所有输入都是整数。 由 ChatGPT 5 翻译