時限:1000ms 記憶體限制:10000k 總時限:3000ms
描述判斷是否能從迷宮的入口到達出口
輸入先輸入兩個不超過20的正整數表示迷宮的行數m和列數n,再輸入口和出口的座標,最後分m行輸入迷宮,其中1表示牆,0表示空格每個數字之間都有空格。
輸出只能向上、下、左、右四個方向走若能到達,則輸出"yes",否則輸出"no",結果佔一行。
輸入樣例
3 30 0
2 20 0 0
1 1 0
0 1 0
輸出樣例
yes
#include #include #include using namespace std;
int m,n;
int flag=0;
int in1,in2;
int out1,out2;
int maze[25][25];
int visited[25][25];
int direction[4][2]=,,,};
void dsf(int x,int y)
visited[x][y]=1;
for(int i=0;i=0 && nx=0 && ny<=m && maze[nx][ny]==0 && visited[nx][ny]==0)
dsf(nx,ny); }}
int main()
else
return 0;
}
C 回溯法走迷宮
定義乙個迷宮,0表示通道,1表示牆 8,10 11 12 13 14 15 16 17 18 19 2021 struct try 定義乙個棧,儲存路徑 22 path maxsize 定義棧 2728 int top 1 初始化棧指標 2930 void findpath int xb,int y...
DFS(入門題,走迷宮)
1185 走迷宮 time limit 1 sec memory limit 128 mb submit 383 solved 155 submit status web board description 給一張個迷宮,問能否從起點走到終點,只能往上下左右走,不能斜著走 input 多組測試資料,...
用回溯遞迴演算法解決走迷宮問題
迷宮是由許多小方格構成的矩形,在每個小方格中有的是牆,有的是路,走迷宮就是從乙個小方格沿上下左右四個方向到臨近的方格,當然不能穿牆。設迷宮的入口是在左上角 1,1 出口是右下角 8,8 根據給定的迷宮,找出一條從入口到出口的路徑。演算法設計思路 從入口開始廣度優先搜尋所有可到達的方格入隊,再擴充套件...