QOJ.ac

QOJ

Límite de tiempo: 1 s Límite de memoria: 512 MB Puntuación total: 100

#780. 木の上での生活

Estadísticas

木の上の生活 (tree)

小忆(シャオイー)と小艾(シャオアイ)は木の上に住んでいます。この木 $T$ は $n$ 個の頂点と $n - 1$ 本の辺からなります。今、木の上に順列 $p$ があります。小艾は毎回、辺 $(u, v) \in T$ を一つ選び、$p_u$ と $p_v$ を入れ替えることができます。小艾のタスクは、この順列をソートすることです。小艾は、最低何回の交換が必要かを推定するために小忆に相談しました。小忆は考えた末に、次の式を書き出しました。

$$\frac{1}{2} \sum_{i=1}^{n} \text{dist}(i, p_i)$$

小艾が試してみたところ、偶然にも現在の順列が小忆の示した下界にちょうど一致していることが分かりました!彼はあなたに、この下界を達成するソート手順を提示できるか尋ねています。特に、彼は提示する手順の辞書順が最小になることを望んでいます。木の辺には $1$ から $n - 1$ までの番号が付けられており、手順の辞書順は、操作する辺の番号を順に比較することで決定されます。

問題文

木 $T$ と順列 $p$ が与えられます。辺の交換操作を繰り返して順列をソートしてください。操作回数は $\frac{1}{2} \sum_{i=1}^{n} \text{dist}(i, p_i)$ 回である必要があります。この条件を満たす手順のうち、操作する辺の番号列が辞書順最小となるものを求めてください。

入力形式

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

$n$ $u_1 \ v_1$ $u_2 \ v_2$ $\vdots$ $u_{n-1} \ v_{n-1}$ $p_1 \ p_2 \ \dots \ p_n$

出力形式

辞書順最小の解における、操作する辺の番号を順に空白区切りで出力せよ。

サンプル

サンプル 1

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

注記

初期状態は $2, 1, 5, 3, 4$ です。以下の $5$ 回の操作により、順列は次のように変化します。

  • $2, 5, 1, 3, 4$
  • $2, 4, 1, 3, 5$
  • $2, 3, 1, 4, 5$
  • $1, 3, 2, 4, 5$
  • $1, 2, 3, 4, 5$

サンプル 2

選手ディレクトリ内の tree/tree2.in および tree/tree2.ans を参照してください。

制約

すべてのデータにおいて、$1 \le n \le 10^3$ を満たし、与えられた順列は $\frac{1}{2} \sum_{i=1}^{n} \text{dist}(i, p_i)$ 回の操作でソート可能であることが保証されている。

テストケース $n$ 特殊制約
1, 2 $= 5$
3, 4 $= 30$
5 $= 10^2$
6 $= 10^3$ A0
7 $= 10^3$ A1
8 $= 10^3$ B0
9 $= 10^3$ B1
10 $= 10^3$

特殊制約:

  • A: 辺集合が $\{(1, 2), (2, 3), \dots, (n - 1, n)\}$ である。
  • B: 辺集合が $\{(1, 2), (1, 3), \dots, (1, n)\}$ である。
  • 0: 辺が前述の順序通りに与えられることが保証されている。
  • 1: 辺が任意の順序で与えられる可能性がある。

サブタスク

この問題にはサブタスクの設定はありません。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.