题目大意
有两个人位于不同的起点,每次移动两人只能往同一方向移动,如果在边界或移动方向有障碍物则不移动,求两人移动到同一点的最短时长。
解题思路
考虑到两个人第一次到达某个位置时,花费的时间最短,不妨设其中一人的位置为 (x1,y1)(x_1,y_1)(x1 ,y1 ) ,另一人的位置为 (x2,y2)(x_2,y_2)(x2 ,y2 ) 。
令 d[x1][y1][x2][y2]d[x_1][y_1][x_2][y_2]d[x1 ][y1 ][x2 ][y2 ] 为一人到达 (x1,y1)(x_1,y_1)(x1 ,y1 ) ,另一人到达 (x2,y2)(x_2,y_2)(x2 ,y2 ) 花费的最短时间。因为每次移动只花费 111 单位时间,所以通过 bfsbfsbfs 即可实现。
时间复杂度 O(n4)O(n^4)O(n4)
参考代码