2815 城堡問題(dfs)

2022-05-10 07:28:31 字數 1508 閱讀 2128

總時間限制: 

1000ms

記憶體限制: 

65536kb

描述

1 2 3 4 5 6 7

#############################

1 # | # | # | | #

#####---#####---#---#####---#

2 # # | # # # # #

#---#####---#####---#####---#

3 # | | # # # # #

#---#########---#####---#---#

4 # # | | | | # #

#############################

(圖 1)

# = wall

| = no wall

- = no wall

圖1是乙個城堡的地形圖。請你編寫乙個程式,計算城堡一共有多少房間,最大的房間有多大。城堡被分割成mn(m≤50,n≤50)個方塊,每個方塊可以有0~4面牆。

輸入程式從標準輸入裝置讀入資料。第一行是兩個整數,分別是南北向、東西向的方塊數。在接下來的輸入行裡,每個方塊用乙個數字(0≤p≤50)描述。用乙個數字表示方塊周圍的牆,1表示西牆,2表示北牆,4表示東牆,8表示南牆。每個方塊用代表其周圍牆的數字之和表示。城堡的內牆被計算兩次,方塊(1,1)的南牆同時也是方塊(2,1)的北牆。輸入的資料保證城堡至少有兩個房間。

輸出城堡的房間數、城堡中最大房間所包括的方塊數。結果顯示在標準輸出裝置上。

樣例輸入

4 

7 11 6 11 6 3 10 6

7 9 6 13 5 15 5

1 10 12 7 13 7 5

13 11 10 8 10 12 13

樣例輸出

5

9

**

1164

1 #include 2

using

namespace

std;

3const

int maxn=60;4

intcolor[maxn][maxn];

5int

room[maxn][maxn];

6int

r,c,ansnum,anscolor;

7void dfs(int i,int

j) 16

17int

main() 23}

24 memset(color,0,sizeof

(color));

25 anscolor=0;26

int res=0; ansnum=0;27

for(int i=0; i) 35}

36}37 cout38 cout39return0;

40 }

百練2815 城堡問題(DFS)

總時間限制 1000ms 記憶體限制 65536kb 描述 1 2 3 4 5 6 7 1 2 3 4 圖 1 wall no wall no wall 圖1是乙個城堡的地形圖。請你編寫乙個程式,計算城堡一共有多少房間,最大的房間有多大。城堡被分割成m n m 50,n 50 個方塊,每個方塊可以有...

poj2815 城堡問題(DFS)

描述 1 2 3 4 5 6 7 1 2 3 4 wall no wall no wall 上面是乙個城堡的地形圖。請你編寫乙個程式,計算城堡一共有多少房間,最大的房間有多大。城堡被分割成m n m 50,n 50 個方塊,每個方塊可以有0 4面牆。輸入 程式從標準輸入裝置讀入資料。第一行是兩個整數...

POJ 2815城堡問題(DFS)

poj 2815 城堡問題 dfs 思路 全部設為全域性變數,用void寫dfs函式,引數為i,j dfs函式 void型別,引數為座標,所有內容均為全域性變數 分成三部分 1.判斷是否已經訪問過,若是,直接返回 2.訪問操作 3.遞迴操作 void dfs int i,int j ac inclu...