題目描述
由數字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和2別的值 如
3 3 3 3 3 3
3 3 1 1 1 1
3 1 1 0 0 1
1 1 0 0 0 1
1 0 0 0 0 1
1 1 1 1 1 1
然後 我們把所有的零換成2就行啦
#include
#include
using namespace std;
int a[35][35];
int n;
void dfs(int x, int y) }}
int main()
}dfs(0, 0);
for (i = 1; i <= n; i++)
}for (i = 1; i <= n; i++)
cout << endl;
}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 2 2 1 1 1 2 2...
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 ...
洛谷P1162 填塗顏色 DFS漫水填充法
由數字 0組成的方陣中,有一任意形狀閉合圈,閉合圈由數字 1 構成,圍圈時只走上下左右 4 個方向。現要求把閉合圈內的所有空間都填寫成 2 例如 6 6 的方陣 n 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 ...