日常水题-bfs求细胞数量
Posted hwjia
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了日常水题-bfs求细胞数量相关的知识,希望对你有一定的参考价值。
P1451 求细胞数量
一题让我学会bfs系列qaq
1 #include<cstdio> 2 #include<iostream> 3 using namespace std; 4 const int sz = 110; 5 int n, m, ans = 0; 6 int dx[4]={0,1,0,-1}; 7 int dy[4]={1,0,-1,0}; 8 int plat[sz][sz]; 9 int q[sz][3]; 10 struct node { 11 int x, y; 12 }; 13 void bfs(int x,int y) { 14 int head = 1, tail = 1, mx, my; 15 plat[x][y] = 0; 16 q[1][1] = x, q[1][2] = y; 17 while(head<=tail) { 18 for(int i = 0; i < 4; i++) { 19 mx = q[head][1] + dx[i]; 20 my = q[head][2] + dy[i]; 21 if(mx>=1&&my>=1&&mx<=n&&my<=m&&plat[mx][my]) { 22 tail++; 23 q[tail][1] = mx; 24 q[tail][2] = my; 25 plat[mx][my] = 0; 26 } 27 } 28 head++; 29 } 30 } 31 int main() { 32 scanf("%d%d",&n,&m); 33 for(int i = 1; i <= n; i++) { 34 for(int j = 1; j <= m; j++) 35 scanf("%1d",&plat[i][j]); 36 } 37 for(int i = 1; i <= n; i++) { 38 for(int j = 1; j <= m; j++) { 39 if(plat[i][j]) { 40 bfs(i,j); 41 ans++; 42 } 43 } 44 } 45 printf("%d",ans); 46 return 0; 47 }
不那样读入一行就算一个了qaq
我写的博客过两天自己都看不懂QAQ
以上是关于日常水题-bfs求细胞数量的主要内容,如果未能解决你的问题,请参考以下文章