#aBC224D. [ABC224D] 8 Puzzle on Graph
[ABC224D] 8 Puzzle on Graph
AT_abc224_d [ABC224D] 8 Puzzle on Graph
题目描述
高桥君在路边捡到了一个拼图。
这个拼图由 个顶点和 条边组成的无向图,以及 个棋子构成。
图中的 个顶点分别称为顶点 、顶点 、、顶点 ,对于 ,第 条边连接顶点 和顶点 。
个棋子分别称为棋子 、棋子 、、棋子 ,对于 ,棋子 放在顶点 上。这里保证所有棋子都放在不同的顶点上。请注意,有且仅有一个没有棋子的“空顶点”。
高桥君可以对这个拼图进行如下操作,次数不限(可以为 次):
选择一个与空顶点相邻的顶点上的棋子,将该棋子移动到空顶点上。
高桥君希望通过重复上述操作,使拼图“完成”。当满足以下状态时,拼图被认为是完成的:
对于 ,棋子 放在顶点 上。
请判断高桥君是否能够完成拼图。如果可以,请输出完成所需操作次数的最小值;如果无法完成,请输出 。
输入格式
输入以如下格式从标准输入读入:
输出格式
如果高桥君能够完成拼图,输出完成所需操作次数的最小值。
如果无法完成,输出 。
输入输出样例 #1
输入 #1
5
1 2
1 3
1 9
2 9
3 9
3 9 2 4 5 6 7 8
输出 #1
5
输入输出样例 #2
输入 #2
5
1 2
1 3
1 9
2 9
3 9
1 2 3 4 5 6 7 8
输出 #2
0
输入输出样例 #3
输入 #3
12
8 5
9 6
4 5
4 1
2 5
8 9
2 1
3 6
8 7
6 5
7 4
2 3
1 2 3 4 5 6 8 7
输出 #3
-1
输入输出样例 #4
输入 #4
12
6 5
5 4
4 1
4 7
8 5
2 1
2 5
6 9
3 6
9 8
8 7
3 2
2 3 4 6 1 9 7 8
输出 #4
16
说明/提示
限制条件
- 给定的图中没有重边和自环
- 所有输入均为整数
样例解释 1
通过如下步骤,可以在 次操作内完成拼图:
- 将棋子 从顶点 移动到顶点 。
- 将棋子 从顶点 移动到顶点 。
- 将棋子 从顶点 移动到顶点 。
- 将棋子 从顶点 移动到顶点 。
- 将棋子 从顶点 移动到顶点 。
无法在少于 次操作内完成拼图,因此输出 。
请注意,给定的图不一定是连通的。
样例解释 2
拼图一开始就已经完成,因此完成所需的最小操作次数为 。
样例解释 3
无法通过操作完成拼图,因此输出 。
由 ChatGPT 4.1 翻译