空间限制
256MB
时间限制
1000ms
迷宫最短距离(无障碍)
给定一个规模为n(n行n列)的无障碍迷宫(除了四周的墙啥也没有),从起点出发,每次只能向上下左右四个方向移动一步,求从起点移动到终点所需的最少步数。
输入格式
第一行为迷宫规模n;
第二行为起点的行数和列数位置sx,sy,空格隔开;
第三行为终点的行数和列数位置ex,ey,空格隔开;
输出格式
最少步数
输入样例
3
1 1
3 3
输出样例
4
提示
对100%的数据,0<n≤100000<n≤10000。
上一篇文章在这个四个测试点的加强版中只能过50分,链接如下:
迷宫最短距离(无障碍)https://blog.csdn.net/e12435/article/details/124512566?spm=1001.2014.3001.5501
加强版也很简单,不多说了,亮代码:
#include<iostream>
using namespace std;
int main(){
int m,s,c,d,a;
cin >> s >> m >> c >> d >> a;
if(m+c>=d+a){
cout << m+c-d-a;
}else{
cout << d+a-m-c;
}
return 0;
}
虽然要求用“广度优先搜索”,但没有障碍可以直接找规律。
在这里不多说了,自己去看我的上一篇文章。
加强版就是判断一下位置坐标起点和终点的关系和“大小”。
谢谢观看和支持!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
欢迎评论!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!