atcoder#ABC270C. [ABC270C] Simple path

[ABC270C] Simple path

题目描述

N N 頂点の木 T T があり、 i i (1 i N1) (1\leq\ i\leq\ N-1) 番目の辺は頂点 Ui U_i と頂点 Vi V_i を結んでいます。

T T 上の相異なる 2 2 頂点 X,Y X,Y が与えられるので、 頂点 X X から頂点 Y Y への単純パス上の頂点(端点含む)を順に列挙してください。

ただし、木上の任意の相異なる 2 2 頂点 a,b a,b について、a a から b b への単純パスがただ一つ存在することが証明できます。

単純パスとは?グラフ G G 上の頂点 X,Y X,Y に対して、頂点列 v1,v2, , vk v_1,v_2,\ \ldots,\ v_k であって、 v1=X v_1=X , vk=Y v_k=Y かつ、1 i k1 1\leq\ i\leq\ k-1 に対して vi v_i vi+1 v_{i+1} が辺で結ばれているようなものを頂点 X X から頂点 Y Y への パス と呼びます。 さらに、v1,v2, , vk v_1,v_2,\ \ldots,\ v_k がすべて異なるようなものを頂点 X X から頂点 Y Y への 単純パス と呼びます。

输入格式

入力は以下の形式で標準入力から与えられる。

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}

输出格式

頂点 X X から頂点 Y Y への単純パス上の頂点番号を順に空白区切りで出力せよ。

题目大意

给定一个树,求这个树上两个点的简单路径。请按照 x,a,b,c,,yx,a,b,c,\cdots,y 的顺序输出。(输入的两个点的顺序是 xxyy

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 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
  • 入力はすべて整数
  • 与えられるグラフは木

Sample Explanation 1

T T は以下のような形であり、頂点 2 2 から頂点 5 5 への単純パスは 頂点 2 2 \to 頂点 1 1 \to 頂点 3 3 \to 頂点 5 5 となります。 よって、2,1,3,5 2,1,3,5 をこの順に空白区切りで出力します。 ![](https://img.atcoder.jp/abc270/4f4278d90219acdbf32e838353b7a55a.png)

Sample Explanation 2

T T は以下のような形です。 ![](https://img.atcoder.jp/abc270/3766cc7963f74e28fa0de6ff660b1998.png)