#4382. 简单路径(Simple path)

简单路径(Simple path)

题目描述

在一个有 NN 个顶点的树 TT 中,第 ii 条边 (1iN1)(1≤i≤N-1) 连接顶点UiU_i 和顶点 ViV_i。给定两个不同的顶点 XXYY,请按顺序列出从顶点 XX 到顶点 YY 的简单路径上的所有顶点,包括端点。注意,对于树中任意两个不同的顶点 aabb,从 aabb 的简单路径是唯一的。

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

在图 GG 中,对于顶点 XXYY,如果存在一个顶点序列 v1,v2,,vkv_1, v_2, \ldots, v_k 满足以下条件,则称其为从顶点 XX 到顶点 YY路径

  • v1=Xv_1 = Xvk=Yv_k = Y
  • 对于每个 1ik11 \leq i \leq k-1viv_ivi+1v_{i+1} 通过一条边连接。

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

输入格式

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

NN XX YY

U1U_1 V1V_1

U2U_2 V2V_2

\vdots

UN1U_{N-1} VN1V_{N-1}

输出格式

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

样例

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

样例解释

【样例1说明】
TT 如下图所示。从顶点 2 到顶点 5 的简单路径是 2 → 1 → 3 → 5。
因此,应按此顺序输出 2, 1, 3, 5,中间用空格分隔。

【样例2说明】
TT 如下图所示。

数据范围

1N2×1051 ≤ N ≤ 2 × 10^5
1X,YN1 ≤ X, Y ≤ N
XYX ≠ Y
1Ui,ViN1 ≤ U_i, V_i ≤ N,输入中的所有值都是整数。给定的图是一棵树。

来源

  • AtCoder ABC270C