description
給出一張地圖,這張地圖被分為 n×m(n,m<=100)個方塊,任何乙個方塊不是平地就是高山。平地可以通過,高山則不能。現在你處在地圖的(x1,y1)這塊平地,問:你至少需要拐幾個彎才能到達目的地(x2,y2)?你只能沿著水平和垂直方向的平地上行進,拐彎次數就等於行進方向的改變(從水平到垂直或從垂直到水平)的次數。例如:如圖 1,最少的拐彎次數為5。
input
第 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 (分別為起點、終點座標)
output
s (即最少的拐彎次數)
sample input
5 71 0 0 0 0 1 0
0 0 1 0 1 0 0
0 0 0 0 1 0 1
0 1 1 0 0 0 0
0 0 0 0 1 1 0
1 3 1 7
sample output
**
#include
#include
using
namespace std;
const
int dx[5]
=;const
int dy[5]
=;int n,m,a[
10005][
10005
],x1,y1,x2,y2,st[
1005][
4];void
bfs(
) tail++
; a[x]
[y]=1;
st[tail][1
]=x;
st[tail][2
]=y;
st[tail][3
]=st[head][3
]+1;
//是st[head][3]的轉彎數加一
x+=dx[i]
; y+
=dy[i];}
}}while
(headintmain()
最小轉彎問題(bfs)
涉及考點 bfs 寬度優先搜尋算 題目描述 給出一張地圖,這張地圖被分為 n m n,m 100 個方塊,任何乙個方塊不是平地就是高山。平地可以通過,高山則不能。現在你處在地圖的 x1,y1 這塊平地,問 你至少需要拐幾個彎才能到達目的地 x2,y2 你只能沿著水平和垂直方向的平地上行進,拐彎次數就...
SSL P2325 最小轉彎問題
給出一張地圖,這張地圖被分為 n m n,m 100 個方塊,任何乙個方塊不是平地就是高山。平地可以通過,高山則不能。現在你處在地圖的 x1,y1 這塊平地,問 你至少需要拐幾個彎才能到達目的地 x2,y2 你只能沿著水平和垂直方向的平地上行進,拐彎次數就等於行進方向的改變 從水平到垂直或從垂直到水...
字元大小轉化
一 根據仿宋 gb2312字反覆測試收集到資料,用字元跨度 行跨度與字型字型大小的關係 來說明。字元跨度 行跨度與字型字型大小的關係 對以上表認真分析,可以得到行 字元網格的準確定義 行高就是行跨度 其最小值大於預設字型的高度,是預設字型的高度的1.36倍 另外,行高不能小於15.6磅,所有小於五號...