SSL P2325 最小轉彎問題

2021-10-01 11:05:51 字數 1270 閱讀 3956

給出一張地圖,這張地圖被分為 n×m(n,m<=100)個方塊,任何乙個方塊不是平地就是高山。平地可以通過,高山則不能。現在你處在地圖的(x1,y1)這塊平地,問:你至少需要拐幾個彎才能到達目的地(x2,y2)?你只能沿著水平和垂直方向的平地上行進,拐彎次數就等於行進方向的改變(從水平到垂直或從垂直到水平)的次數。例如:如圖 1,最少的拐彎次數為5。

第 1行:n m 第 2至n+1行:整個地圖地形描述(0:空地;1:高山), 如圖,第2行地形描述為:1 0 0 0 0 1 0 第3行地形描述為:0 0 1 0 1 0 0 …… 第n+2行:x1 y1 x2 y2 (分別為起點、終點座標)

最少的拐彎次數

571

0000

1000

1010

0000

0101

0110

0000

0001

1013

17

5
這道題,很明顯就是一道bfs(畢竟作者在學 ),比較簡單(雖然作者在myc大佬的幫助下歷經千辛萬苦才做出來,但是這沒有關係 ),唯一的難點在於bfs要求代價相等,所以在搜尋的時候就要一路搜到底,還有一些細節的東西需要注意一下,其他就沒有什麼問題了。

#include

#include

using

namespace std;

struct abcf[

10010];

const

int zx[5]

=,zy[5]

=;int n,m,a[

110]

[110

],x1,y1,x2,y2,hd=

0,tl=1;

bool

check

(int q,

int p)

return0;

}int

main()

tl++

; a[xx]

[yy]=1

; f[tl]

.x=xx;

f[tl]

.y=yy;

f[tl]

.ans=f[hd]

.ans+1;

xx=xx+zx[i]

; yy=yy+zy[i];}

}}}

友鏈:最小轉彎問題高階版:麻將遊戲

SSL P1786 麻將遊戲

尋求最短路徑,但可越出平板 暫時性 相對其他的題目來說比較難,但只要處理好一些細節後,便會從複雜到簡單。我絕對不會說出ta是最小轉彎的 公升級版!include include include include define ll long long using namespace std inlin...

SSL P1222 矩陣 題目

矩形 difficult time limit 20000ms memory limit 65536k total submit 212 accepted 70 case time limit 2000ms description 在乙個平面上有n個矩形。每個矩形的邊都平行於座標軸並且都具有值為整數...

SSL P1312 旅行 題目

2006河南省賽第一試 旅行 time limit 2000ms memory limit 65536k total submit 186 accepted 71 description z小鎮是乙個景色宜人的地方,吸引來自各地的觀光客來此旅遊觀光。z小鎮附近共有n個景點 編號為1,2,3,n 這些...