題目描述
由數字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 1 0 0 0 1
1 0 0 0 0 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
輸入輸出格式
輸入格式:
每組測試資料第一行乙個整數n(1 \le n \le 30)n(1≤n≤30)
接下來nn行,由00和11組成的n \times nn×n的方陣。
方陣內只有乙個閉合圈,圈內至少有乙個00。
//感謝黃小u飲品指出本題資料和資料格式不一樣. 已修改(輸入格式)
輸出格式:
已經填好數字22的完整方陣。
輸入輸出樣例
輸入樣例#1: 複製
60 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
說明1 \le n \le 301≤n≤30
想法 :(好久前寫的)
把邊界的點 都進行 dfs 那麼沒有被標記的 或者 不為 1 的即為內部的點
#include
int book[31]
[31]=
,a[33][
33],n;void
dfs(
int x,
int y),,
,};if
(x<
1||x>n||y<
1||y>n||a[x]
[y]==1)
return
;for
(i=0
;i<
4;i++
)return;}
intmain()
}for
(i=1
;i<=n;i++
)for
(i=1
;i<=n;i++
)for
(i=1
;i<=n;i++
)printf
("\n");
}return0;
}
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 2 2 1 1 1 2 2...
面試題 08 10 顏色填充(dfs)
編寫函式,實現許多編輯軟體都支援的 顏色填充 功能。待填充的影象用二維陣列 image 表示,元素為初始顏色值。初始座標點的橫座標為 sr 縱座標為 sc。需要填充的新顏色為 newcolor 周圍區域 是指顏色相同且在上 下 左 右四個方向上存在相連情況的若干元素。請用新顏色填充初始座標點的周圍區...
Turtle庫顏色填充
使用turtle不只可以畫線條,也可以將畫出的封閉線條進行填充。設定填充色 fillecolor r,g,b 開始填充 begin fill 結束填充 end fill 把上次畫圖的練習 先初始化乙個填充顏色。然後,在畫每個圖形繪製之前使用begin fill 以及繪製之後使用end fill 這樣...