解题思路:

1.分析题目


屏幕截图 2022-05-29 105330.png


题目错误

             矩形阵列应该是由数字0到9组成,

              数字1到9代表细胞,

             有4个细胞。


4 10
0234500067
1034560500
2045600671
0000000089


细胞数字是1到9
一个颜色代表同一个细胞,有四种细胞。

2.方法

dfs




注意事项:

输入时输入四行10列,不要输入int型

应该先输入char型再转换为int,不然会出错误,因为没有空格

参考代码:

#include<bits/stdc++.h>
using namespace std;
int a[110][110];
int dx[4]={1,-1,0,0};//定义四个方向 
int dy[4]={0,0,-1,1};
int n,m;
int coun=0;     //计数 
void dfs(int x,int y)
{
    for(int i=0;i<4;i++)//遍历四个方向 
    {
        int Lx=x+dx[i],Ly=y+dy[i];
        if(Lx>0&&Lx<=n&&Ly>0&&Ly<=m&&a[Lx][Ly])//如果在矩形中,并没有遍历过 
        {
            a[Lx][Ly]=0;//将这个点变成遍历过了 ,以免下一次还遍历这个点。 
            dfs(Lx,Ly); //遍历 
        }
    }
} 
int main()
{
    cin>>n>>m;
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=m;j++)
        {
            char c;
            cin>>c;//输入一个个字符 
            a[i][j]=c-'0';//转换为int型 
        }
    }
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=m;j++)
        {
            if(a[i][j])//如果这个点非0,才进入遍历 
            {
                a[i][j]=0; 
                coun++;
                dfs(i,j);
            }
        }
    }
    cout<<coun;
    return 0;
}


点赞(1)
 

0.0分

3 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论