F - Grafting 解説 /

実行時間制限: 5 sec / メモリ制限: 1024 MB

配点 : 1900

問題文

すぬけ君は頂点に 1 から N の番号がついた N 頂点の木 A,B を見つけました。 Ai 番目の辺は頂点 a_ib_i をつないでいます。 Bj 番目の辺は頂点 c_jd_j をつないでいます。 全ての頂点ははじめ、白で塗られています。

すぬけ君は以下の操作を A0 回以上行い、B と一致するようにしたいです。

  • 白で塗られた1 つ選ぶ(これを v とする)
  • v に接続された辺を取り除き、v と別の頂点をつなぐ新たな辺を追加する
  • v を黒く塗る

AB と一致させることが可能かどうかを判定し、可能ならば必要な操作回数の最小値を求めてください。一致判定において、頂点の色は考慮しません。

T 個のケースが与えられるので、それぞれについて答えを求めてください。

制約

  • 1 \leq T \leq 20
  • 3 \leq N \leq 50
  • 1 \leq a_i,b_i,c_i,d_i \leq N
  • 与えられるグラフはいずれも木

入力

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

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}

出力

各ケースについて、AB と一致させることが可能ならば必要な操作回数の最小値を、不可能ならば、-1 を出力せよ。


入力例 1

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

出力例 1

1
-1
  • それぞれのケースでは、以下の図のようなグラフが与えられます
  • ケース 1 では頂点 1 を選び、12 をつなぐ辺を取り除いて 13 をつなぐ辺を追加することで AB を一致させることが可能です。頂点 2 は葉ではないため、選ぶことができないことに注意してください
3f020b4a4e883680357cc55adb571fbc.png

入力例 2

3
8
2 7
4 8
8 6
7 1
7 3
5 7
7 8
4 2
5 2
1 2
8 1
3 2
2 6
2 7
4
1 2
2 3
3 4
3 4
2 1
3 2
9
5 3
4 3
9 3
6 8
2 3
1 3
3 8
1 7
4 1
2 8
9 6
3 6
3 5
1 8
9 7
1 6

出力例 2

6
0
7
  • AB が一致していることもあります

Score : 1900 points

Problem Statement

Snuke has found two trees A and B, each with N vertices numbered 1 to N. The i-th edge of A connects Vertex a_i and b_i, and the j-th edge of B connects Vertex c_j and d_j. Also, all vertices of A are initially painted white.

Snuke would like to perform the following operation on A zero or more times so that A coincides with B:

  • Choose a leaf vertex that is painted white. (Let this vertex be v.)
  • Remove the edge incident to v, and add a new edge that connects v to another vertex.
  • Paint v black.

Determine if A can be made to coincide with B, ignoring color. If the answer is yes, find the minimum number of operations required.

You are given T cases of this kind. Find the answer for each of them.

Constraints

  • 1 \leq T \leq 20
  • 3 \leq N \leq 50
  • 1 \leq a_i,b_i,c_i,d_i \leq N
  • All given graphs are trees.

Input

Input is given from Standard Input in the following format:

T
case_1
:
case_{T}

Each case is given in the following format:

N
a_1 b_1
:
a_{N-1} b_{N-1}
c_1 d_1
:
c_{N-1} d_{N-1}

Output

For each case, if A can be made to coincide with B ignoring color, print the minimum number of operations required, and print -1 if it cannot.


Sample Input 1

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

Sample Output 1

1
-1
  • The graph in each case is shown below.
  • In case 1, A can be made to coincide with B by choosing Vertex 1, removing the edge connecting 1 and 2, and adding an edge connecting 1 and 3. Note that Vertex 2 is not a leaf vertex and thus cannot be chosen.
3f020b4a4e883680357cc55adb571fbc.png

Sample Input 2

3
8
2 7
4 8
8 6
7 1
7 3
5 7
7 8
4 2
5 2
1 2
8 1
3 2
2 6
2 7
4
1 2
2 3
3 4
3 4
2 1
3 2
9
5 3
4 3
9 3
6 8
2 3
1 3
3 8
1 7
4 1
2 8
9 6
3 6
3 5
1 8
9 7
1 6

Sample Output 2

6
0
7
  • A may coincide with B from the beginning.