AT_agc027_f [AGC027F] Grafting

题目描述

すぬけ君发现了两棵有 $N$ 个顶点的树 $A$ 和 $B$,每个顶点编号为 $1$ 到 $N$。树 $A$ 的第 $i$ 条边连接顶点 $a_i$ 和 $b_i$,树 $B$ 的第 $j$ 条边连接顶点 $c_j$ 和 $d_j$。所有顶点初始时都被涂成白色。 すぬけ君可以对 $A$ 进行如下操作若干次(可以为 $0$ 次),希望将 $A$ 变为与 $B$ 完全相同。 - 选择一个被白色涂色的**叶子**(记为 $v$)。 - 移除与 $v$ 相连的边,并添加一条 $v$ 与另一个顶点相连的新边。 - 将 $v$ 涂成黑色。 请判断是否可以通过上述操作将 $A$ 变为 $B$,如果可以,求所需操作次数的最小值。判断两棵树是否一致时,不考虑顶点的颜色。 有 $T$ 组测试数据,请分别输出每组的答案。

输入格式

输入按以下格式从标准输入读入。 > $T$ > case$_1$ > : > case$_T$ 每组数据格式如下: > $N$ > $a_1$ $b_1$ > : > $a_{N-1}$ $b_{N-1}$ > $c_1$ $d_1$ > : > $c_{N-1}$ $d_{N-1}$

输出格式

对于每组数据,如果可以将 $A$ 变为 $B$,输出所需操作次数的最小值;否则输出 $-1$。

说明/提示

### 限制 - $1 \leq T \leq 20$ - $3 \leq N \leq 50$ - $1 \leq a_i, b_i, c_i, d_i \leq N$ - 输入的图均为树 ### 样例解释 1 - 每组数据给出的图如下图所示。对于第 $1$ 组,可以选择顶点 $1$,移除 $1$ 与 $2$ 的边,并添加 $1$ 与 $3$ 的边,即可将 $A$ 变为 $B$。注意,顶点 $2$ 不是叶子,不能被选择。 ![](https://img.atcoder.jp/agc027/3f020b4a4e883680357cc55adb571fbc.png) ### 样例解释 2 - 有时 $A$ 和 $B$ 已经一致。 由 ChatGPT 4.1 翻译