poj 1164 簡單地廣搜

2021-06-27 00:21:12 字數 1433 閱讀 4558

我覺得「與」的方法判斷挺重要的,其他沒什麼

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~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 

樣例輸出59

*/#include

#include

using namespace std;

int color[60][60];

int block[60][60];

int roomnum;

int maxarea;

int nowarea;

void dfs(int j,int k);

int main()

}roomnum = 0;

maxarea = 0;

for(int i = 0 ;i < line; ++i)}}

cout << roomnum << endl;

cout << maxarea << endl;

}void dfs(int i,int j)

POJ 1164簡單搜尋

include include include include include include include include pragma warning disable 4996 using namespace std typedef long long ll int r,c int room ...

POJ1376簡單廣搜

題意 給你乙個n m的矩陣,然後給你機械人的起點和終點,還有起點的方向,然後每次機械人有兩種操作,左右旋轉90度,或者是朝著原來的方向走1,2或者3步,機械人再走的過程中不能碰到格仔,也不能碰到邊界,輸出最少步數。思路 比較簡單的題目,只是要注意幾點。1 走的過程中邊界不可以碰 2 如果你想一下子走...

POJ 3278 簡單廣搜

poj3278 題意 輸入n,m,求由n到m需要最少步數,n只能加一減一或者乘二。寫的第二道廣搜題,發現用佇列就是每一種可能讀入隊尾,然後再從隊首乙個乙個的遍歷。需要做的是判斷條件和記錄步數。includeusing namespace std include include include def...