题目背景
《爱与愁的故事第三弹·shopping》最终章。
题目描述
爱与愁大神买完东西后,打算坐车离开中山路。现在爱与愁大神在x1,y1处,车站在x2,y2处。现在给出一个n×n(n<=1000)的地图,0表示马路,1表示店铺(不能从店铺穿过),爱与愁大神只能垂直或水平着在马路上行进。爱与愁大神为了节省时间,他要求最短到达目的地距离(a[i][j]距离为1)。你能帮他解决吗?
输入格式
第1行:一个数 n
第2行~第n+1行:整个地图描述(0表示马路,1表示店铺,注意两个数之间没有空格)
第n+2行:四个数 x1,y1,x2,y2
输出格式
只有1行:最短到达目的地距离
思路:这是一道简简单单的bfs题,题目要求求最短路径,我们可以用bfs来搜索,第一个搜索到的肯定就是最优解,我们直接输出即可,总之这套题就是访问过的打标记即可,然后判断四个方向有没有符合条件的值我们直接走过去即可,记得初始位置赋值为1;
#include<bits/stdc++.h>
using namespace std;
int n,xx1,yy1,x2,y2;
char a[1010][1010];
bool vis[1010][1010];
int dx[5]={
0,-1,0,1,0