Uva572種子填充

2021-07-24 12:52:02 字數 783 閱讀 8054

油田(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...