#agc027f. [agc027_f]Grafting
[agc027_f]Grafting
问题描述
Snuke发现了两棵树和,每棵树都有个顶点,编号从到。的第条边连接了顶点和,的第条边连接了顶点和。此外,的所有顶点最初都被涂成白色。
Snuke希望在上执行以下操作零次或多次,使得与重合:
- 选择一个被涂成白色的叶子顶点(设为)。
- 删除与 相接触的边,并添加一条连接与另一个顶点的新边。
- 把涂成黑色。
判断是否能够与重合,不考虑颜色。如果可以,请找出所需的最小操作次数。
输入包括个这样的问题实例。对每个实例求解。
约束条件
- 所给图均为树。
输入
从标准输入读取输入数据,输入格式如下:
每个问题实例的输入格式如下:
输出
对于每个问题实例,如果可以与重合(不考虑颜色),则输出所需的最小操作次数;如果不能,则输出-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
- 每个问题实例的图示如下。
- 在第一个问题实例中,可以通过选择顶点,删除连接和的边,并添加连接和的边,使得与重合。请注意,顶点不是叶子顶点,因此无法选择。
- 在第二个问题实例中,无法与重合。
示例输入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
- 可以从一开始就与重合。