本題可以用深度搜尋,也可以用廣度搜尋,相對來說,廣度搜尋更加簡潔,但是為了學習深度搜尋,故本題採用深度搜尋。
思路:依然是使用遞迴,一步一步向前試探,試探後再回溯,最後比較結果,即可得出答案。
**如下:
#include#define max_n 1005 40 0 1 0#define max_m 100
inta[max_n][max_m];
intp,q,n,m;
int min=max_n+max_m;
void dfs(int x,int y,int
step);
int main(void
) }
scanf(
"%d%d%d%d
",&startx,&starty,&p,&q);
/*資料的處理
*/startx=startx-1
; starty=starty-1
; p=p-1
; q=q-1
;
/*因為輸入資料是從 (1,1) 開始計數,而陣列是從 (0,0) 開始計數。所以此處都要減去 1
*/dfs(startx,starty,0);
printf(
"%d\n
",min);
return
0;
} void dfs(int x,int y,int
step)
return
; }
if(a[x][y]==1
)
if(x+1
if(x-1>0
)
if(y+1
if(x-1
<0
)
}
0 0 0 0
0 0 1 0
0 1 0 0
0 0 0 1
1 1 4 3
3 20 1
0 00 0
1 1 3 2
5 40 0 1 0
0 0 0 0
0 0 1 0
0 1 1 0
0 0 0 0
1 1 5 2
此**沒有使用標記陣列,也可以使用標記陣列來解答此題。
解救小哈 廣度優先搜尋bfs
有一天,小哈乙個去玩迷宮。但是方向感很不好的小哈很快就迷路了。小哼得知後便立即去解救無助的小哈。小哼當然是有備而來,已經弄清楚了迷宮地圖,現在小哼要以最快速度去解救小哈。問題就此開始了 迷宮由n行m列的單元格組成,每個單元格要麼是空地,要麼是障礙物。你的任務是幫助小哼找到一條從迷宮的起點到小哈所在位...
廣度優先搜尋 解救小哈(c )
廣度優先搜尋可以形象化為 淺嘗輒止 可以理解為雷達,訊號是一圈一圈的進行發射,即對於每乙個頂點我只訪問該頂點的臨近點,找出臨近點的的所有情況,並且用佇列儲存起來。include include using namespace std int a 51 51 int book 51 51 int si...
解救小哈 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...