例題 油田(UVa 572)

2021-07-23 04:56:48 字數 501 閱讀 2122

輸入乙個m行n列的字元矩陣,統計字元@組成多少個八連塊。如果兩個字元@所在的格仔相鄰(橫豎或者對角線方向),就說他們屬於同乙個八連塊。

sample input

1 1*

3 5*@*@*

**@**

*@*@*

sample output01

【分析】dfs基礎題,典型題。用dfs找聯通塊:從每個@格仔出發,遞迴遍歷它周圍的@格仔。每次訪問乙個格仔時就給它寫上乙個「連通分量編號」,這樣就可以在訪問之前檢查它是否已經有了編號,從而同乙個格仔被訪問多次

#include#includeconst int maxn = 100 + 5;

char pic[maxn][maxn];

int m, n, idx[maxn][maxn];

void dfs(int r, int c, int id)

int main()

return 0;

}

uva572 油田 連通塊遍歷

的簡潔性需要注意小技巧 1.方向陣列。2.外麵包一層空氣防止判斷邊界。3.更改原來的陣列的狀態而不需要重新建立vis陣列 這樣會破壞原始資料,是乙個不好的習慣,但是這樣很靈活。include include define directsize 8 struct direct direct direc...

uva572 油田 DFS或者並查集 1

給你一塊地圖 其中 代表探測到有油的地方,而 則是代表沒有油的地方。現在題目給出了油田的定義,所有連在一起的 代表乙個油田,而連在一起的定義是有公共點或公共邊。而題目的要求是輸出給你一張地圖上的油田的個數。思路 這個題沒什麼特別的思路,就是找到乙個初始的 然後遍歷一遍,把與他屬於同乙個油田的都標記了...

UVA 572 油田連通塊 並查集解決

題意 8個方向如果能夠連成一塊就算是乙個連通塊,求一共有幾個連通塊。分析 網上的題解一般都是dfs,但是今天發現並查集也可以解決,為了方便我自己理解大神的模板,便嘗試解這道題目,沒想到過了。1 include 2 include 3 include 4 include 5 include 6 inc...