一天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判斷...