迷宮 dfs經典

2021-09-12 10:39:44 字數 1387 閱讀 1899

1792:迷宮

總時間限制: 3000ms 記憶體限制: 65536kb

描述一天extense在森林裡探險的時候不小心走入了乙個迷宮,迷宮可以看成是由n * n的格點組成,每個格點只有2種狀態,.和#,前者表示可以通行後者表示不能通行。同時當extense處在某個格點時,他只能移動到東南西北(或者說上下左右)四個方向之一的相鄰格點上,extense想要從點a走到點b,問在不走出迷宮的情況下能不能辦到。如果起點或者終點有乙個不能通行(為#),則看成無法辦到。

輸入第1行是測試資料的組數k,後面跟著k組輸入。每組測試資料的第1行是乙個正整數n (1 <= n <= 100),表示迷宮的規模是n * n的。接下來是乙個n * n的矩陣,矩陣中的元素為.或者#。再接下來一行是4個整數ha, la, hb, lb,描述a處在第ha行, 第la列,b處在第hb行, 第lb列。注意到ha, la, hb, lb全部是從0開始計數的。

輸出k行,每行輸出對應乙個輸入。能辦到則輸出「yes」,否則輸出「no」。

樣例輸入

2

3.##

..##..

0 0 2 2

5.....

###.#

..#..

###..

...#.

0 0 4 0

樣例輸出

yes

no

一天晚上晚自習準備刷題,一開始看到這個題 大喜 ,覺得今晚上可以刷一些搜尋的題目,因為題意比較簡單 而且還是經典題型,

可是 整整花了兩個多小時時間 去找錯誤,理解題意 真是有個坑啊 ,太坑了 坑的我都想爆粗口了 心裡面一萬個mmp。

呃,還是寫篇文章 記錄下這次這個坑,讓我以後長個教訓,讓同樣在遨遊在題海中兄弟們少走點彎路

#include #include #include #include #include #include using namespace std;

const int maxx = 1005;

int cors[5] = ; //x

int stra[5] = ; //y

int m,n;

int ha,la,hb,lb,f;

void dfs(int a,int b)

if(a == hb && b == lb)

for(int i = 1;i <= 4;i++) }}

int main()

} cin >> ha >> la >> hb >> lb;

cout << "no" << endl;

continue;

} dfs(ha,la);

if(f == 1)else

} return 0;

}

迷宮問題 (經典dfs)

題目 迷宮問題,給你乙個n m的矩陣,其中0代表通路,1代表阻塞。給你起點座標和終點座標,詢問 最小路徑從起點到達終點。題目分析 一般問你最小的基本都是dfs或者bfs,再其次,能用bfs的基本都能用dfs 個人理解 include include include include using nam...

zcmu 1185 走迷宮 dfs經典題

time limit 1 sec memory limit 128 mb submit 379 solved 153 submit status web board 給一張個迷宮,問能否從起點走到終點,只能往上下左右走,不能斜著走 多組測試資料,每組第一行兩個正整數,分別為n和m 表示n這個迷宮有n...

迷宮問題dfs

迷宮問題 棧作為深度優先遍歷 dfs 採用的搜尋方法的特點是盡可能先對縱深方向進行搜尋 可以最快的找到解 include define m 8 define n 8 define maxsize 1000 typedef struct box typedef struct sttype 迷宮問題常用...