由數字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輸出樣例#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
0 0 0 0 0 0分析:可以從四周開始dfs能搜到的標記一下,那麼搜不到的就是中間被包圍的。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
**如下:
#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 這樣...