#ABC270C. [ABC270C] 简单路径(Simple path)

    ID: 2768 Type: Default 1000ms 256MiB Tried: 0 Accepted: 0 Difficulty: (None) Uploaded By: Tags>ABC入门算法闯关图论基础与树

[ABC270C] 简单路径(Simple path)

题目描述

在一个有 NN 个顶点的树 TT 中,第 ii 条边 (1iN1)(1 \le i \le N−1) 连接顶点 UiU_i 和顶点 ViV_i

给定两个不同的顶点 XXYY,请按顺序列出从顶点 XX 到顶点 YY 的简单路径上的所有顶点,包括端点。

注意,对于树中任意两个不同的顶点 aabb,从 aabb 的简单路径是唯一的。

什么是简单路径(Simple Path)?

在图 GG 中,对于顶点 XXYY,如果存在一个顶点序列 v1,v2, , vk v_1,v_2,\ \ldots,\ v_k 满足以下条件,

则称其为从顶点 XX 到顶点 YY路径

  • v1=X v_1=X , vk=Y v_k=Y
  • 对于每个 1 i k1 1\leq\ i\leq\ k-1 viv_ivi+1v_{i+1} 通过一条边连接。

如果所有顶点 v1,v2, , vk v_1,v_2,\ \ldots,\ v_k 都是不同的,则称这样的路径为从顶点 XX 到顶点 YY简单路径

输入格式

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

N N X X Y Y

U1 U_1 V1 V_1

U2 U_2 V2 V_2

\vdots

UN1 U_{N-1} VN1 V_{N-1}

输出格式

按顺序输出从顶点 XX 到顶点 YY 的简单路径上的所有顶点的索引,用空格分隔。

输入输出样例 #1

输入 #1

5 2 5
1 2
1 3
3 4
3 5

输出 #1

2 1 3 5

输入输出样例 #2

输入 #2

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

输出 #2

1 2

说明/提示

样例 1 解释

TT 如下图所示。从顶点 2 到顶点 5 的简单路径是 21352 → 1 → 3 → 5

因此,应按此顺序输出 2, 1, 3, 5,中间用空格分隔。

样例 2 解释

树 T 如下图所示。

数据范围

  • 1 N 2× 105 1\leq\ N\leq\ 2\times\ 10^5
  • 1 X,Y N 1\leq\ X,Y\leq\ N
  • X Y X\neq\ Y
  • 1 Ui,Vi N 1\leq\ U_i,V_i\leq\ N
  • 输入中的所有值都是整数
  • 给定的图是一棵树。