AT_arc211_d.[ARC211D] Michishirube

省选/NOI-

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

给定一个有 NN 个顶点和 MM 条边的简单连通无向图。第 ii 条边 (1≤i≤M)(1\leq i\leq M) 为无向边,连接顶点 UiU_i 和 ViV_i。

请按如下规定在所有顶点上放置指示牌:

  • 除顶点 11 外,每个顶点放置一个蓝色指示牌,指向它的一个相邻顶点。
  • 除顶点 22 外,每个顶点放置一个黄色指示牌,指向它的一个相邻顶点。

同一顶点的两个指示牌指向的顶点不能是同一个。

判断是否存在一种指示牌的放置方式,使得满足以下条件,如果存在,输出其中一种方案:

  • 从除顶点 11 外的任意一个顶点出发,无限次沿着蓝色指示牌指向的顶点前进,最终必然到达顶点 11。
  • 从除顶点 22 外的任意一个顶点出发,无限次沿着黄色指示牌指向的顶点前进,最终必然到达顶点 22。

如果存在多种满足条件的放置方式,你可以输出其中任意一种。

输入格式

输入以如下格式从标准输入给出:

NN MM U1U_1 V1V_1 U2U_2 V2V_2
⋮\vdots
UMU_M VMV_M

输出格式

如果不存在满足条件的放置方法,只需输出一行 No。

如果存在,输出 N+1N+1 行。

第一行输出 Yes。

第二行输出顶点 11 上黄色指示牌指向的顶点的编号。

第三行输出顶点 22 上蓝色指示牌指向的顶点的编号。

第 ii 行(4≤i≤N+14\leq i\leq N+1)输出两个用空格分隔的整数,分别为顶点 i−1i-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

此处指示牌的放置方式如图所示。例如,从顶点 33 出发:

  • 遵循蓝色指示牌前进,路径为 3→4→5→13\rightarrow 4\rightarrow 5\rightarrow 1,最终到达顶点 11。
  • 遵循黄色指示牌前进,路径为 3→1→5→4→6→23\rightarrow 1\rightarrow 5\rightarrow 4\rightarrow 6\rightarrow 2,最终到达顶点 22。

同样可以验证,从顶点 22 遵循蓝色指示牌也可以到达 11,从顶点 11 遵循黄色指示牌也可以到达 22,其他顶点也都满足条件。

虽然存在多种方案,但例如顶点 33 上的蓝色指示牌和黄色指示牌都不能指向顶点 44,因为同一顶点两个指示牌不允许指向同一个顶点。

样例解释 2

不存在满足条件的指示牌放置方式。

约束条件

  • 2≤N≤2×1052\leq N\leq 2\times 10^5
  • 1≤M≤3×1051\leq M\leq 3\times 10^5
  • 1≤Ui<Vi≤N1\leq U_i < V_i\leq N 且 1≤i≤M1\leq i\leq M
  • 给定图保证简单且连通。
  • 所有输入都是整数。

由 ChatGPT 5 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页