AT_ajo2024_final_e Five Shuffles

题目描述

有一棵包含 $N$ 个顶点的树。每个顶点编号为 $1$ 到 $N$,第 $i$ 条边 $(1 \leq i \leq N-1)$ 连接顶点 $u_i$ 和顶点 $v_i$。此外,每个顶点上写有一个 $1$ 到 $N$ 之间互不相同的整数,顶点 $i$ 上写的数是 $p_i$。 AtCoder 先生最多可以进行 $5$ 次如下所述的**独立集洗牌**操作。 > **独立集洗牌操作定义如下:** > > 首先,将树的所有顶点标记为白色,然后依次执行以下两步: > > 1. 选择某些顶点将其标记为黑色,但不能选择一条边连接的两个顶点都变黑; > 2. 将所有黑色顶点上的数进行任意重新排列。 进行操作后,如果能使至少 $N-2$ 个顶点满足:顶点 $i\ (1 \leq i \leq N)$ 上写的数为 $i$,就可以获得奖励。请给出一种实现这一目标的方法。题目保证在本问题的约束下,答案一定存在。

输入格式

输入以如下格式从标准输入读入。 > $N$ $u_1$ $v_1$ $u_2$ $v_2$ $⋮$ $u_{N-1}$ $v_{N-1}$ $p_1$ $p_2$ $⋯$ $p_N$

输出格式

请按以下格式输出答案。 设总共做了 $K$ 次独立集洗牌($K \leq 5$),第 $i$ 次操作结束后,顶点 $j$ 上的数为 $a_{i,j}$。**不用保证操作次数最少。** > $K$ > $a_{1,1}$ $a_{1,2}$ $⋯$ $a_{1,N}$ > $a_{2,1}$ $a_{2,2}$ $⋯$ $a_{2,N}$ > $⋮$ > $a_{K,1}$ $a_{K,2}$ $⋯$ $a_{K,N}$

说明/提示

### 样例解释 1 例如,可以像下图这样操作,在不超过 $5$ 次的独立集洗牌内达成目标。注意,不需要使所有 $N$ 个顶点都满足 $i$ 号顶点上为 $i$。 ![ ](https://cdn.luogu.com.cn/upload/vjudge_pic/AT_ajo2024_final_e/e9453ced34dafba3e63237fc571d8c5c00a2711eff2666f681ccef936a81a4c2.png) ### 样例解释 2 例如,可以像下图这样操作,在不超过 $5$ 次的独立集洗牌内达成目标。 ![ ](https://cdn.luogu.com.cn/upload/vjudge_pic/AT_ajo2024_final_e/b83d4ca6111427de8675ae43effce66b9fac4f01e6b832cfab93f60379a79114.png) ### 数据范围 - $3 \leq N \leq 150\,000$ - $1 \leq u_i < v_i \leq N$ - $1 \leq p_i \leq N$ - $p_1, p_2, \dots, p_N$ 均互不相同 - 输入给定的图是一棵树 - 输入均为整数 由 ChatGPT 5 翻译