1162霍古 顏色填充

2021-09-10 15:55:02 字數 1032 閱讀 3549

題目描述

由數字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 ...