POJ 1164簡單搜尋

2021-08-21 18:45:17 字數 995 閱讀 3644

#include#include#include#include#include#include#include#include#pragma warning(disable:4996)

using namespace std;

typedef long long ll;

int r,c;

int room[60][60];

int color[60][60];

int maxroomarea = 0;//最大房間面積

int roomnum = 0;//房間數

int roomarea;//當前房間面積

void dfs(int i,int k)

int main()

} }cout << roomnum << endl;

cout << maxroomarea << endl;

}

題目描述:

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

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

解題思路:

把方塊看作是節點,相鄰兩個方塊之間如果沒 有牆,則在方塊之間連一條邊,這樣城堡就能 轉換成乙個圖。

 求房間個數,實際上就是在求圖中有多少個極 大連通子圖。

 乙個連通子圖,往裡頭加任何乙個圖里的其他 點,就會變得不連通,那麼這個連通子圖就是 極大連通子圖。(如:(8,5,6))

poj 1164 簡單地廣搜

我覺得 與 的方法判斷挺重要的,其他沒什麼 2815 城堡問題 檢視 提交 統計 提示 提問 總時間限制 1000ms 記憶體限制 65536kb 描述1 2 3 4 5 6 7 1 2 3 4 圖 1 wall no wall no wall 圖1是乙個城堡的地形圖。請你編寫乙個程式,計算城堡一共...

poj 1775 簡單搜尋

這道題反覆做了好多次才ac,可能就是好久不做題的原因,第一次超時,陣列開得太太太大了,後來輸出錯誤,忘加 eof了,後來一直wa,後來看網上 知道自己題目理解錯了,首先0的階乘是1,其次倆個小的數的階乘不可能大於那個大數的,所以網上有人用dfs,把題目想難了,不過我很欣賞dfs,這道題用dfs好像有...

poj 3278 簡單搜尋bfs

題目大意 給出兩個數n,k 經過兩種操作使n成為k所需要的步數 操作1 n n 1或n n 1 操作2 n n 2 解題思路 用bfs搜尋,vis陣列標記狀態同時記錄到當前位置所用的步數 include include include using namespace std int n,k int ...