【題目描述】
一天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」。
【輸入樣例】23
.##…#
#…0 0 2 25…
###.#
…#…###…
…#.0 0 4 0
【輸出樣例】
yesno
【源**】
#include
#include
#include
#define sizen 100+5
using
namespace std;
int k,n,ha,la,hb,lb;
char a[sizen]
[sizen]=;
int da[5]
=;int db[5]
=;bool b[sizen]
[sizen]=;
int flag=0;
bool
dfs(
int x,
int y)
for(
int i=
0; i<
4; i++)}
return
false;}
intmain()
} cin>>ha>>la>>hb>>lb;
if(a[ha]
[la]
=='#'
||a[hb]
[lb]
=='#'
) b[ha]
[la]=1
;dfs
(ha,la);if
(flag==
1) cout<<
"yes"
"no"
<}return0;
}
資訊學奧賽一本通 1215 迷宮 evd
題目描述 一天extense在森林裡探險的時候不小心走入了乙個迷宮,迷宮可以看成是由n n的格點組成,每個格點只有2種狀態,和 前者表示可以通行後者表示不能通行。同時當extense處在某個格點時,他只能移動到東南西北 或者說上下左右 四個方向之一的相鄰格點上,extense想要從點a走到點b,問在...
資訊學奧賽一本通(C 版)
資訊學奧賽一本通 c 版 總目錄 1.資訊學奧賽一本通 c 版 刷題 記錄 2.資訊學奧賽一本通 c 版 第一部分 c 語言 第一章 c 語言入門 3.資訊學奧賽一本通 c 版 第一部分 c 語言 第二章 順序結構程式設計 4.資訊學奧賽一本通 c 版 第一部分 c 語言 第三章 程式的控制結構 5...
資訊學奧賽一本通C 語言 1216 紅與黑
題目描述 有一間長方形的房子,地上鋪了紅色 黑色兩種顏色的正方形瓷磚。你站在其中一塊黑色的瓷磚上,只能向相鄰的黑色瓷磚移動。請寫乙個程式,計算你總共能夠到達多少塊黑色的瓷磚。輸入 包括多個資料集合。每個資料集合的第一行是兩個整數w和h,分別表示x方向和y方向瓷磚的數量。w和h都不超過20。在接下來的...