#include
struct note//定義乙個結構體佇列
;int
main()
,book[51]
[51]=
;//a陣列存地圖,book標記那個點走過
int next[4]
[2]=
,,,}
;//定義的方向
int head,tail;
//標記頭和尾
int i,j,k,n,m,startx,starty,endx,endy,tx,ty,flag;
scanf
("%d%d"
,&n,
&m);
//輸入地圖大小
for(i=
1;i<=n;i++
)for
(j=1
;j<=m;j++
)scanf
("%d"
,&a[i]
[j])
;//存入地圖
scanf
("%d%d%d%d"
,&startx,
&starty,
&endx,
&endy)
;//輸入起點座標,終點座標;
head=1;
tail=1;
que[head]
.x=stratx;
que[head]
.y=straty;
que[head]
.s=0
;//起點x座標,起點y座標,步數,存入佇列
tail++
;//尾巴往後指一位
book[startx]
[starty]=1
;//起點座標標記走過
flag=0;
while
(head//頭尾不相等迴圈
if(tx==endx&&ty==endy)
//如果走到終點結束 }if
(flag==1)
break
; head++
;//頭往後移,也就是下乙個位置的座標繼續走
}printf
("%d"
,que[tail-1]
.s);
//tail-1是因為tail永遠是在最後一位的後一位,所以輸出的時候要tail-1,才是答案
return0;
}
啊哈演算法之解救小哈
題目描述 有一天,小哈乙個去玩迷宮。但是方向感很不好的小哈很快就迷路了。小哼得知後便立即去解救無助的小哈。小哼當然是有備而來,已經弄清楚了迷宮地圖,現在小哼要以最快速度去解救小哈。問題就此開始了 迷宮由n m列的單元格組成,每個單元格要麼是空地,要麼是障礙物。你的任務是幫助小哼找到一條從迷宮的起點到...
解救小哈 BFS演算法舉例
有一天,小哈乙個人去玩迷宮。但是方向感不好的小哈很快就迷路了。小哼得知後便去解救無助的小哈。此時的小哼已經弄清楚了迷宮的地圖,現在小哼要以最快的速度去解救小哈。那麼,問題來了.輸入5 4 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 1 1 4 3 輸出輸入 3 3...
解救小哈 廣度優先搜尋bfs
有一天,小哈乙個去玩迷宮。但是方向感很不好的小哈很快就迷路了。小哼得知後便立即去解救無助的小哈。小哼當然是有備而來,已經弄清楚了迷宮地圖,現在小哼要以最快速度去解救小哈。問題就此開始了 迷宮由n行m列的單元格組成,每個單元格要麼是空地,要麼是障礙物。你的任務是幫助小哼找到一條從迷宮的起點到小哈所在位...