程式設計題走迷宮 C 程式演算法題 迷宮(一)

2021-10-12 13:29:22 字數 948 閱讀 1860

題目:

一天蒜頭君掉進了乙個迷宮裡面,蒜頭君想逃出去,可憐的蒜頭君連迷宮是否有能逃出去的路都不知道。看在蒜頭君這麼可憐的份上,就請聰明的你告訴蒜頭君是否有可以逃出去的路。

輸入格式

第一行輸入兩個整數 n和 m,表示這是乙個 n×m的迷宮。接下來的輸入乙個 n行 m列的迷宮。其中 's' 表示蒜頭君的位置,'*'表示牆,蒜頭君無法通過,'.'表示路,蒜頭君可以通過'.'移動,'t'表示迷宮的出口(蒜頭君每次只能移動到四個與他相鄰的位置——上,下,左,右)。

輸出格式

輸出乙個字串,如果蒜頭君可以逃出迷宮輸出"yes",否則輸出"no"。

資料範圍

1≤n,m≤10。

sample input

3 4s**.

***t

sample output

nosample input 2

3 4s**.

***t

sample output 2

yes運用深度搜尋。找到人的位置,因為只能從上下左右四個方向出發,所以每到乙個點,先判斷是否是終點,然後考慮這個點是否是在該棋盤上,是否能走,是否已經走過。最後如果能出去,則輸出yes,否則輸出no。

**#include

#include

#include

int n,m;

char road[15][15]; //棋盤

bool is_run[15][15]=; //是否已經走過

int dir[4][2]=,,,}; // 分別代表四個方向

bool out = false; //是否可以出去

using namespace std;

// 因為要從4個方向出發,所以需要判斷下乙個點是否在地圖裡

bool in_road(int x,int y)else{

cout<

return 0;

執行結果:

附加題 走迷宮

白雪公主身陷在乙個m n大小的迷宮中,迷宮中的障礙物是不能通行的。迷宮中用s代表白雪公主的位置,用e代表出口,代表障礙物,代表可以通行的道路。白雪公主只可以向上 下 左 右四個方向行走,並且每一步只能走乙個單位的長度。現給定m,n以及迷宮的樣子,求解x走到出口的過程中最少需要改變行走方向幾次?如果x...

DFS(入門題,走迷宮)

1185 走迷宮 time limit 1 sec memory limit 128 mb submit 383 solved 155 submit status web board description 給一張個迷宮,問能否從起點走到終點,只能往上下左右走,不能斜著走 input 多組測試資料,...

3752 走迷宮 BFS入門題

描述 乙個迷宮由r行c列格仔組成,有的格仔裡有障礙物,不能走 有的格仔是空地,可以走。給定乙個迷宮,求從左上角走到右下角最少需要走多少步 資料保證一定能走到 只能在水平方向或垂直方向走,不能斜著走。輸入 第一行是兩個整數,和 代表迷宮的長和寬。1 r,c 40 接下來是 行,每行 個字元,代表整個迷...