2815 城堡問題

2022-09-03 16:09:18 字數 1480 閱讀 3242

總時間限制: 1000ms 記憶體限制: 65536kb

123

4567

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

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)的北牆。輸入的資料保證城堡至少有兩個房間。

輸出

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

樣例輸入

4711

61163

10679

613515

511012713

751311108

1012

13

樣例輸出

5

9

1 #include 2

using

namespace

std;34

int a[100][100];//

儲存房間資訊

5int color[100][100]=;//

對遍歷過的房間進行染色

6int numroom=0, maxarea=0;//

房間數目和最大房間面積

7int roomarea;//

房間面積

8void dfs(int x, inty)9

1819

intmain()

2029 }//

讀入房間資訊

30for(int i=0; i//

對所有方格進行遍歷

314142}

43}44 cout45 }

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 個方塊,每個方塊可以有...

OpenJudge 2815 城堡問題

description 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面牆。input 程式從標準輸...

百練 2815 城堡問題

總時間限制 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...