5208. 穿过迷宫的最少移动次数
可以访问我的博客,嘎嘎
题目描述
思想
想法很简单,就是用BFS一层一层的搜索就可以。但针对这个问题,有些地方需要改变下。
首先是当前位置
以前在一个二维地图上进行BFS,当前位置都是用 ( i , j ) (i,j) (i,j)这样一个坐标表示的,但现在这条小蛇独占了2个格子,也就是需要用两个坐标来表示,即 ( i 1 , j 1 ) , ( i 2 , j 2 ) (i_1,j_1),(i_2,j_2) (i1,j1),(i2,j2),约定第一个坐标表示蛇的尾部,第二个坐标表示蛇的头部。为了方便实现,我们定义一个结构体:
struct Node {
int a, b, c, d;
Node() {
}
Node(int _a, int _b, int _c, int _d) : a(_a), b(_b), c(_c), d(_d) {
}
};
其中(a,b)
对应着 ( i 1 , j 1 ) (i_1,j_1) (i