AT_arc211_d.[ARC211D] Michishirube
省选/NOI-
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给定一个有 N 个顶点和 M 条边的简单连通无向图。第 i 条边 (1≤i≤M) 为无向边,连接顶点 Ui 和 Vi。
请按如下规定在所有顶点上放置指示牌:
- 除顶点 1 外,每个顶点放置一个蓝色指示牌,指向它的一个相邻顶点。
- 除顶点 2 外,每个顶点放置一个黄色指示牌,指向它的一个相邻顶点。
同一顶点的两个指示牌指向的顶点不能是同一个。
判断是否存在一种指示牌的放置方式,使得满足以下条件,如果存在,输出其中一种方案:
- 从除顶点 1 外的任意一个顶点出发,无限次沿着蓝色指示牌指向的顶点前进,最终必然到达顶点 1。
- 从除顶点 2 外的任意一个顶点出发,无限次沿着黄色指示牌指向的顶点前进,最终必然到达顶点 2。
如果存在多种满足条件的放置方式,你可以输出其中任意一种。
输入格式
输入以如下格式从标准输入给出:
N M U1 V1 U2 V2
⋮
UM VM
输出格式
如果不存在满足条件的放置方法,只需输出一行 No。
如果存在,输出 N+1 行。
第一行输出 Yes。
第二行输出顶点 1 上黄色指示牌指向的顶点的编号。
第三行输出顶点 2 上蓝色指示牌指向的顶点的编号。
第 i 行(4≤i≤N+1)输出两个用空格分隔的整数,分别为顶点 i−1 上蓝色指示牌指向的顶点的编号,以及黄色指示牌指向的顶点的编号。
如果存在多种方案,你可以输出其中任意一种。
输入输出样例
输入#1
7 8 1 3 3 4 4 5 1 5 4 6 2 6 2 7 4 7
输出#1
Yes 5 6 4 1 5 6 1 4 4 2 4 2
输入#2
10 12 1 3 3 4 4 5 1 5 4 6 2 6 2 7 4 7 4 8 8 9 9 10 8 10
输出#2
No
说明/提示
样例解释 1
此处指示牌的放置方式如图所示。例如,从顶点 3 出发:
- 遵循蓝色指示牌前进,路径为 3→4→5→1,最终到达顶点 1。
- 遵循黄色指示牌前进,路径为 3→1→5→4→6→2,最终到达顶点 2。
同样可以验证,从顶点 2 遵循蓝色指示牌也可以到达 1,从顶点 1 遵循黄色指示牌也可以到达 2,其他顶点也都满足条件。

虽然存在多种方案,但例如顶点 3 上的蓝色指示牌和黄色指示牌都不能指向顶点 4,因为同一顶点两个指示牌不允许指向同一个顶点。
样例解释 2
不存在满足条件的指示牌放置方式。
约束条件
- 2≤N≤2×105
- 1≤M≤3×105
- 1≤Ui<Vi≤N 且 1≤i≤M
- 给定图保证简单且连通。
- 所有输入都是整数。
由 ChatGPT 5 翻译
输入解题思路,AI测评打分。不知道怎么写?