迷宮
description
小c最近在研究機械人,他想看看自己的機械人夠不夠智慧型,於是他將機械人放在乙個n*m的迷宮中,看看機械人能不能在最短的時間內到達目的地,可是小c不知道最短的時間是多少,現在請你幫他算算機械人到達目的地的最短時間是多少?
輸入資料第一行兩個整數n和m。
接下來n行,每行m個元素,表示迷宮的每個方格。
's'表示機械人的出發點,
't'表示目的地,
'#'表示該方格不能通過
'.'表示可以通過
輸出乙個整數表示機械人到達目的地的最短時間,如果機械人不能到達目的地,輸出-1。
3 3
s..
##.
.t.5
解題思路:
已經用bfs成功ac後,想用dfs試試,當然是在我對dfs和bfs的時間複雜度沒啥概念前才有的想法。。。
後來看了別人的部落格看到的:
二維陣列的題目,n小於
20的,適用
dfs。而一般
n<= 200
,n<=1000
這種,一定不可能用
dfs去做。而且並不只是整個題目不能用
dfs,其中的
每一步也不能使用
dfs。
因此只有超時**:
#include
using namespace std;
int sx,sy,tx,ty;
typedef pairp;
char maze[1005][1005];
int n,m,flag=0,ans=inf,d;
int vis[1005][1005];
int dx[4]=,dy[4]=;
void dfs(int sx,int sy,int d)
for(int i=0;i<4;i++)
}return ;
}int main()
for(i=0;i
DFS(入門題,走迷宮)
1185 走迷宮 time limit 1 sec memory limit 128 mb submit 383 solved 155 submit status web board description 給一張個迷宮,問能否從起點走到終點,只能往上下左右走,不能斜著走 input 多組測試資料,...
迷宮問題dfs
迷宮問題 棧作為深度優先遍歷 dfs 採用的搜尋方法的特點是盡可能先對縱深方向進行搜尋 可以最快的找到解 include define m 8 define n 8 define maxsize 1000 typedef struct box typedef struct sttype 迷宮問題常用...
DFS 遞迴 迷宮
這幾天都在看那本演算法書 啊哈!演算法 今天看到深度優先搜尋 dfs 總結了自己看得懂的使用模板.dfs的模板.public class main static void dfs else 1 主方法呼叫靜態方法dfs。2 dfs方法的步驟 1 先判斷目前是否滿足條件。2 滿足的話,就執行輸出結果的...