油田(oil deposits, uva 572)
輸入乙個m行n列的字元矩陣,統計字元「@」組成多少個八連塊。如果兩個字元「@」所在
的格仔相鄰(橫、豎或者對角線方向),就說它們屬於同乙個八連塊。例如,圖中有兩
個八連塊。
輸入:5 5
* * * * @
*@@ * @
*@ * * @
@@@*@
@@ * * @
注意題目的問題,看清題目先。
thinking:通過乙個個字元判斷,判斷其是否為@,如果是,用dfs函式,然後給這個點打上乙個標記,然後通過2個for迴圈將其周圍的8個格仔全部遞迴呼叫
dfs判斷是否為@一遍,判斷時先判斷是否出界,然後判斷是否沒判斷過且這個格仔裡的數為@,這樣就可以將所有連著的@都打上標記,然後接著下次main的迴圈,
通過計算main的迴圈判斷出最終的答案。
#include #include using namespace std;
char pic[10][10];
int dix[10][10];
int r,c;
void dfs(int i,int j,int f1)
int main(){
int f1=0;
freopen("in.txt","r",stdin);
freopen("out.txt","w",stdout);
while(scanf("%d%d",&r,&c)==2&&r&&c){
for(int i=0;i
種子填充演算法(Uva 572
題目描述 給定乙個m n的矩陣,由 和 組成。求 一共有幾塊是連通的。思路 使用dfs遍歷,即找到乙個 後,將與之在同一塊的 均標記,之後碰到就可以忽略。然後遍歷一遍矩陣即可。如下 include include include define clean i memset i,0,sizeof i ...
例題 油田(UVa 572)
輸入乙個m行n列的字元矩陣,統計字元 組成多少個八連塊。如果兩個字元 所在的格仔相鄰 橫豎或者對角線方向 就說他們屬於同乙個八連塊。sample input 1 1 3 5 sample output01 分析 dfs基礎題,典型題。用dfs找聯通塊 從每個 格仔出發,遞迴遍歷它周圍的 格仔。每次訪...
uva572 油田 連通塊遍歷
的簡潔性需要注意小技巧 1.方向陣列。2.外麵包一層空氣防止判斷邊界。3.更改原來的陣列的狀態而不需要重新建立vis陣列 這樣會破壞原始資料,是乙個不好的習慣,但是這樣很靈活。include include define directsize 8 struct direct direct direc...