記憶體限制:256 mib時間限制:1000 ms標準輸入輸出
題目型別:傳統評測方式:文字比較
題目描述
給出一張地圖,這張地圖被分為n×m(n,m<=100)個方塊,任何乙個方塊不是平地就是高山。平地可以通過,高山則不能。現在你處在地圖的(x1,y1)這塊平地,問:你至少需要拐幾個彎才能到達目的地(x2,y2)?你只能沿著水平和垂直方向的平地上行進,拐彎次數就等於行進方向的改變(從水平到垂直或從垂直到水平)的次數。例如:如圖,最少的拐彎次數為5。
輸入格式
第一行:n和m。
第二至n+1行:乙個矩陣,為地圖。(0:空地;1:高山。)
第n+2行:x1,y1,x2和y2。
輸出格式
只有一行,為最少的轉彎次數。
樣例樣例輸入
5 7
1 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
樣例輸出
5
c++ac**#includeusing namespace std;
int n,m,a[105][105],x,y,xx,yy,ans=int_max;
int dir[4][2]=,,,};
bool flag[105][105];
struct nodet1,t2;
queue q;
inline void bfs(int x,int y){
t1.x=x,t1.y=y,t1.z=1314520,t1.ans=0;
q.
最少轉彎問題
給出一張地圖,這張地圖被分為n m n,m 100 個方塊,任何乙個方塊不是平地就是高山。平地可以通過,高山則不能。現在你處在地圖的 x1,y1 這塊平地,問 你至少需要轉幾個彎才能到達目的地 x2,y2 你只能沿著水平和垂直方向的平地上行進,轉彎次數就等於行進方向的改變 從水平到垂直或從垂直到水平...
最少轉彎問題
給出一張地圖,這張地圖被分為n m n,m 100 個方塊,任何乙個方塊不是平地就是高山。平地可以通過,高山則不能。現在你處在地圖的 x1,y1 這塊平地,問 你至少需要轉幾個彎才能到達目的地 x2,y2 你只能沿著水平和垂直方向的平地上行進,轉彎次數就等於行進方向的改變 從水平到垂直或從垂直到水平...
最少轉彎問題
題目描述 給出一張地圖,這張地圖被分為n m n,m 100 個方塊,任何乙個方塊不是平地就是高山。平地可以通過,高山則不能。現在你處在地圖的 x1,y1 這塊平地,問 你至少需要拐幾個彎才能到達目的地 x2,y2 你只能沿著水平和垂直方向的平地上行進,拐彎次數就等於行進方向的改變 從水平到垂直或從...