P1451 求细胞数量

Posted woshishabiye

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了P1451 求细胞数量相关的知识,希望对你有一定的参考价值。

https://www.luogu.org/problemnew/show/P1451<----这里是原题链接

这道题的题意大致是求一个矩阵中非0联通块的个数,那么我们可以dfs每一个块

对于每一个块,ans++后把所有块中的数字归零(吃掉)

所以代码是这样的

 1 #include<iostream>
 2 #include<queue>
 3 #include<cstdio>
 4 using namespace std;
 5 const int maxn = 105;
 6 int dx[8]={-1,0,1,0};
 7 int dy[8]={0,1,0,-1};
 8 bool a[maxn][maxn];
 9 char c;
10 int n,m,ans=0;
11 void dfs(int x,int y)
12 {
13     for(int i=0;i<4;i++)
14     {
15         int xx=x+dx[i];
16         int yy=y+dy[i];
17         if(a[xx][yy]==1)
18         {
19             a[xx][yy]=0;
20             dfs(xx,yy);
21         }
22     }
23 }
24 int main()
25 {
26     cin>>n>>m;
27     for(int i=1;i<=n;i++)
28     {
29         for(int j=1;j<=m;j++)
30         {
31             cin>>c;
32             if(c==0)a[i][j]=0;
33             else a[i][j]=1;
34         }
35     }
36     for(int i=1;i<=n;i++)
37     {
38         for(int j=1;j<=m;j++)
39         {
40             if(a[i][j]==1)
41             {
42                 ans++;
43                 dfs(i,j);
44             }
45         }
46     }
47     cout<<ans;
48 }

那么这样子就解决啦!!!

以上是关于P1451 求细胞数量的主要内容,如果未能解决你的问题,请参考以下文章

Luogu P1451 求细胞数量

dfsp1451 求细胞数量

求细胞数量 - 洛谷

求细胞数量 - 洛谷

求细胞数量 - 洛谷

求细胞数量——dfs