題目背景
《愛與愁的故事第三彈·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
using
namespace std;
int n,xx1,yy1,x2,y2;
char a[
1010][
1010];
bool vis[
1010][
1010];
int dx[5]
=;//四個方向
int dy[5]
=;struct node};
queue q;
intbfs
(int x,
int y)}}
intmain()
} cin>>xx1>>yy1>>x2>>y2;
cout<<
bfs(xx1,yy1)
;return0;
}
P1746 離開中山路 AC於2018 9 16
愛與愁的故事第三彈 shopping 最終章。愛與愁大神買完東西後,打算坐車離開中山路。現在愛與愁大神在x1,y1處,車站在x2,y2處。現在給出乙個n n n 1000 的地圖,0表示馬路,1表示店鋪 不能從店鋪穿過 愛與愁大神只能垂直或水平著在馬路上行進。愛與愁大神為了節省時間,他要求最短到達目...