题目大意
共 KKK 组测试数据,每组测试数据给出一个 A∗B∗CA * B * CA∗B∗C 的立方体,Jerry 每分钟能够移动到相邻六个坐标其中的一个,求是否能在不超过 TTT 分钟从 (1,1,1)(1,1,1)(1,1,1) 到 (A,B,C)(A, B, C)(A,B,C) ,如果能输出最少时间,如果不能则输出 −1-1−1。
题意分析
由于 Jerry 每次移动只需要 111 分钟,所以移动步数即分钟数。
求出 (1,1,1)(1,1,1)(1,1,1) 到 (A,B,C)(A,B,C)(A,B,C) 的最少移动步数跟 TTT 进行比较即可。
解题思路
广度优先搜索求出起点 (1,1,1)(1,1,1)(1,1,1) ,终点 (A,B,C)(A,B,C)(A,B,C) 的最少移动步数。
每次移动有六个方向,分别为 (1,0,0)(1,0,0)(1,0,0), (−1,0,0)(-1,0,0)(−1,0,0),(0,1,0)(0,1,0)(0,1,0),(0,−1,0)(0,-1,0)(0,−1,0),(0,0,1)(0,0,1)(0,0,1),(0,0,−1)(0,0,-1)(0,0,−1) 。
时间复杂度解析
本题时间复杂度为 O(K⋅A⋅B⋅C)O(K \cdot A \cdot B \cdot C)O(K⋅A⋅B⋅C)
代码演示