洛谷P1162 填塗顏色 bfs

2022-06-26 03:27:11 字數 923 閱讀 8828

題目鏈結

題意:

有乙個0和1組成的矩陣,一些1組成乙個閉合圈,圈住一些0,現在要把被圈住的這些0變成2輸出。

思路:

bfs,判斷每個0可以到達的邊界。

如果這個0是可以到達矩陣的邊界的說明沒有被圈住。

bfs時不把1加入佇列,如果最後也不能到達邊界說明是被圈住的,變成2就行了。

1 #include2 #include3 #include4 #include

5 #include6 #include7 #include8 #include9 #include10

11using

namespace

std;

1213

intn;

14int mat[35][35

];15 typedef pairpr;

16int dx[4] = ;

17int dy[4] = ;

18bool vis[35][35

];19

20bool check(int i, int

j)21

2425

bool bfs(int i, int

j)26

3940}41

}42return

true;43

}4445int

main()

4652}53

54for(int i = 0; i < n; i++)60}

61}62}

6364

for(int i = 0; i < n; i++)

69 printf("\n"

);70}71

return0;

72 }

BFS 洛谷P1162填塗顏色

題目 題解 解法一 bfs includeusing namespace std const int m 31 bool vis m m int n,m,a,b,c,map m m queue q void bfs int x,int y int main for int i 1 i n i i n...

洛谷 P1162 填塗顏色(bfs)

由數字0組成的方陣中,有一任意形狀閉合圈,閉合圈由數字1構成,圍圈時只走上下左右4個方向。現要求把閉合圈內的所有空間都填寫成2.例如 6 6的方陣 n 6 每組測試資料第一行乙個整數n 1 n 30 接下來n行,由0和1組成的n n的方陣。方陣內只有乙個閉合圈,圈內至少有乙個0。感謝黃小u飲品指出本...

洛谷p1162填塗顏色(bfs題目)

原題 本題是我第乙個用bfs的題目,bfs是隊裡的shawnzhou大佬教我的,在這裡先感謝他一下啦 這個題的思路也是他提供的,還是需要一定的練習才行鴨!對於本題來說的話,先將外面的0塗成2 然後遍歷圖,將0和2塗反色就可以了 注意bfs的使用哦 實現 include using namespace...