DFS之連通性模型 迷宮

2021-10-03 06:14:54 字數 1128 閱讀 3849

一天extense在森林裡探險的時候不小心走入了乙個迷宮,迷宮可以看成是由 n∗nn∗n

的格點組成,每個格點只有2種狀態,.和#,前者表示可以通行後者表示不能通行。同時當extense處在某個格點時,他只能移動到東南西北(或者說上下左右)四個方向之一的相鄰格點上,extense想要從點a走到點b,問在不走出迷宮的情況下能不能辦到。如果起點或者終點有乙個不能通行(為#),則看成無法辦到。注意:a、b不一定是兩個不同的點。輸入格式第1行是測試資料的組數 kk

,後面跟著 kk

組輸入。每組測試資料的第1行是乙個正整數 nn

,表示迷宮的規模是 n∗nn∗n

的。接下來是乙個 n∗nn∗n

的矩陣,矩陣中的元素為.或者#。再接下來一行是 4 個整數 ha,la,hb,lbha,la,hb,lb

,描述 aa

處在第 haha

行, 第 lala

列,bb

處在第 hbhb

行, 第 lblb

列。注意到 ha,la,hb,lbha,la,hb,lb

全部是從 0 開始計數的。輸出格式k行,每行輸出對應乙個輸入。能辦到則輸出「yes」,否則輸出「no」。資料範圍1≤n≤1001≤n≤100

輸入樣例:2

3.##

…##…

0 0 2 25…

###.#

…#…###…

…#.0 0 4 0

輸出樣例:yes

no

#include

#include

#include

using

namespace std;

const

int n =

110;

int n;

char g[n]

[n];

int xa, ya, xb, yb;

int dx[4]

=, dy[4]

=;bool st[n]

[n];

bool

dfs(

int x,

int y)

return

false;}

intmain()

return0;

}

AcWing 1112 迷宮(DFS連通性)

給定起點和終點,問是否有這樣一條路能夠連通。1 n 100 1 n 100 1 n 10 02 3.0 0 2 2 5.0 0 4 0yes no這題就是典型的連通性問題,屬於模板題,注意起點和終點可能不合法 include using namespace std const int n 110 c...

動態連通性

問題 一對整數p,q可以理解為 p與q是相連的 問給出一組整數對p,q,判斷p,q是否相連,如果相連,則忽略,不想連則新增連線。如 a b c d 則此時認為abcd互相連線。如果新增另一組整數對a,c 則新增不成功,因為此時a,c已經連通 若新增另一組整數對a,f。則新增成功,此時a,b,c,d,...

總結判斷連通性

用warshell 用乙個資料結構jtu 然後建乙個圖,按照要求,將圖轉化為01矩陣 用近似於floyed的來判斷 只要有一對點不連線 return false bfs判斷 用佇列實現 先將0點放入佇列 再依次將所有聯通的點都放入佇列 visit i 判斷入隊的點的個數和總個數的大小關係 dfs判斷...