迷宫最短距离(无障碍)上一篇文章的加强版 可以满分

空间限制

256MB

时间限制

1000ms

迷宫最短距离(无障碍)

给定一个规模为n(n行n列)的无障碍迷宫(除了四周的墙啥也没有),从起点出发,每次只能向上下左右四个方向移动一步,求从起点移动到终点所需的最少步数。

输入格式

第一行为迷宫规模n;

第二行为起点的行数和列数位置sx,sy,空格隔开;

第三行为终点的行数和列数位置ex,ey,空格隔开;

输出格式

最少步数

输入样例

3
1 1
3 3

输出样例

4

提示

对100%的数据,0<n≤100000<n≤10000。

上一篇文章在这个四个测试点的加强版中只能过50分,链接如下:

迷宫最短距离(无障碍)icon-default.png?t=M3K6https://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;
} 

虽然要求用“广度优先搜索”,但没有障碍可以直接找规律。

在这里不多说了,自己去看我的上一篇文章。

加强版就是判断一下位置坐标起点和终点的关系和“大小”。

谢谢观看和支持!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

欢迎评论!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值