填塗顏色 洛谷P1162

2021-09-24 19:57:23 字數 1012 閱讀 1063

由數字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 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≤n≤30)

接下來n行,由0和1組成的n×n的方陣。

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

輸出格式

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

思路

關鍵在於在**填2,外面的0搜一遍,剩下的位置都填2

用bfs會快一點

code

#include#include#include#includeusing namespace std;

int n,a[1005][1005],vst[1005][1005],flag=1;

int dx[4]=,dy[4]=;

struct node

;queueq;

int bfs(int x,int y)

if(!vst[tx][ty])}}

q.pop();

} return fl;

}int main()

for(i=2;i<=n;i++)

for(j=2;j<=n;j++)

if(!vst[i][j])

if(bfs(i,j))

}return 0;

}

洛谷P1162 填塗顏色

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

洛谷P1162 填塗顏色

題目描述 由數字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 0 ...

洛谷P1162 填塗顏色

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