資訊學奧賽一本通C 語言 1215 迷宮

2021-10-05 11:41:45 字數 1326 閱讀 9070

【題目描述】

一天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。在接下來的...