dfs 填充顏色

2021-09-01 18:40:08 字數 1357 閱讀 4918

由數字00組成的方陣中,有一任意形狀閉合圈,閉合圈由數字11構成,圍圈時只走上下左右44個方向。現要求把閉合圈內的所有空間都填寫成22.例如:6 \times 66×6的方陣(n=6n=6),塗色前和塗色後的方陣如下:

0 0 0 0 0 0

0 0 1 1 1 1

0 1 1 2 2 1

1 1 2 2 2 1

1 2 2 2 2 1

1 1 1 1 1 1

0 0 0 0 0 0

0 0 1 1 1 1

0 1 1 0 0 1

1 1 0 0 0 1

1 0 0 0 0 1

1 1 1 1 1 1

輸入格式:

每組測試資料第一行乙個整數n(1 \le n \le 30)n(1≤n≤30)

接下來nn行,由00和11組成的n \times nn×n的方陣。

方陣內只有乙個閉合圈,圈內至少有乙個00。

//感謝黃小u飲品指出本題資料和資料格式不一樣. 已修改(輸入格式)

輸出格式:

已經填好數字22的完整方陣。

輸入樣例#1:複製

6

0 0 0 0 0 0

0 0 1 1 1 1

0 1 1 0 0 1

1 1 0 0 0 1

1 0 0 0 0 1

1 1 1 1 1 1

輸出樣例#1:複製

0 0 0 0 0 0

0 0 1 1 1 1

0 1 1 2 2 1

1 1 2 2 2 1

1 2 2 2 2 1

1 1 1 1 1 1

分析:可以從四周開始dfs能搜到的標記一下,那麼搜不到的就是中間被包圍的。

**如下:

#include#includeusing namespace std;

int a[100][100],b[100][100]=;

int n,x,y;

void dfs(int x,int y)

int main()

int flag=0;

for(int i=1;i<=n;i++)

for(int i=1;i<=n;i++)

for(int i=1;i<=n;i++)

printf("\n");

}//輸出,如果這個看不懂的話建議刷p1000(大牛分站的!);

return 0;

}//**如下:

DFS 填充顏色

題目描述 由數字00組成的方陣中,有一任意形狀閉合圈,閉合圈由數字11構成,圍圈時只走上下左右44個方向。現要求把閉合圈內的所有空間都填寫成22.例如 6 times 66 6的方陣 n 6n 6 塗色前和塗色後的方陣如下 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 0 0 1 1 ...

面試題 08 10 顏色填充(dfs)

編寫函式,實現許多編輯軟體都支援的 顏色填充 功能。待填充的影象用二維陣列 image 表示,元素為初始顏色值。初始座標點的橫座標為 sr 縱座標為 sc。需要填充的新顏色為 newcolor 周圍區域 是指顏色相同且在上 下 左 右四個方向上存在相連情況的若干元素。請用新顏色填充初始座標點的周圍區...

Turtle庫顏色填充

使用turtle不只可以畫線條,也可以將畫出的封閉線條進行填充。設定填充色 fillecolor r,g,b 開始填充 begin fill 結束填充 end fill 把上次畫圖的練習 先初始化乙個填充顏色。然後,在畫每個圖形繪製之前使用begin fill 以及繪製之後使用end fill 這樣...