题目描述

一矩形阵列由数字0到9组成,数字1到9代表细胞,细胞的定义为沿细胞数字上下左右若还是细胞数字则为同一细胞,求给定矩形阵列的细胞个数。(1<=m,n<=100)?

输入输出格式

输入格式: 输入:整数m,n(m行,n列)

矩阵

输出格式: 输出:细胞的个数

输入输出样例

输入样例#1:4 10
0234500067
1034560500
2045600671
0000000089
输出样例#1: 4

dfs每个非0且未访问的数字。

#include<iostream>
#include<string>
#define MAXN 200
using namespace std;int a[MAXN][MAXN];
int m,n;
bool vis[MAXN][MAXN];
int ans;inline bool pd(int x,int y) {if(x<=m&&x>0&&y<=n&&y>0) return true;return false;
}void dfs(int x,int y) {if(vis[x][y]||a[x][y]==0) return;a[x][y]=-1;vis[x][y]=1;if(pd(x+1,y)) dfs(x+1,y);if(pd(x-1,y)) dfs(x-1,y);if(pd(x,y+1)) dfs(x,y+1);if(pd(x,y-1)) dfs(x,y-1);return;
}int calc() {int i,j;int cnt=0;for(i=1; i<=m; i++) {for(j=1; j<=n; j++) {if(a[i][j]==-1) {a[i][j]=0;cnt++;}}}return cnt;
}void show(){for(int i=1; i<=m; i++) {for(int j=1; j<=n; j++) {cout<<a[i][j]<<" ";}cout<<endl;}cout<<endl;
}int main() {int i,j;cin>>m>>n;string s;for(i=1; i<=m; i++) {cin>>s;for(j=0; j<n ; j++) {a[i][j+1]=s[j]-'0';}}for(i=1; i<=m; i++) {for(j=1; j<=n; j++) {if(!vis[i][j]&&a[i][j]!=0) {dfs(i,j);
//              show();int re=calc();if(re>0) ans++;}}}cout<<ans;return 0;
}

和swim很像。。恩

宽搜版:

#include<iostream>
#include<queue>
#include<string>
#define MAXN 200
using namespace std;int n,m;
int a[MAXN][MAXN];
int cnt;
bool vis[MAXN][MAXN];
int mx[4]= {1,0,-1,0};
int my[4]= {0,1,0,-1};struct point {int x,y;
} node,r;void bfs(int x,int y) {a[x][y]=0;vis[x][y]=1;queue<point> Q;node.x = x;node.y = y;Q.push(node);while(!Q.empty() ) {r=Q.front() ;Q.pop();for(int i=0; i<=3; i++) {int nx=r.x + mx[i],ny=r.y + my[i];if(nx>0&&nx<=m&&ny>0&&ny<=n&&a[nx][ny]!=0&&!vis[nx][ny]) {a[nx][ny]=0;vis[nx][ny]=1;node.x = nx;node.y = ny;Q.push(node); }}}
}void show(){for(int i=1; i<=m; i++) {for(int j=1; j<=n; j++) {cout<<a[i][j]<<" ";}cout<<endl;}cout<<endl;
}
int main() {string s;cin>>m>>n;int i,j;for(i=1; i<=m; i++) {cin>>s;for(j=0; j<n; j++) {a[i][j+1]=s[j]-'0';}}for(i=1; i<=m; i++) {for(j=1; j<=n; j++) {if(a[i][j]!=0) {bfs(i,j);cnt++;}}}cout<<cnt;}

转载于:https://www.cnblogs.com/ghostcai/p/9247551.html

[LUOGU]P1451 求细胞数量相关推荐

  1. 搜索2(一、马的遍历 二、 求细胞数量 三、01迷宫 四、奇怪的电梯 五、海战 六、路障)

    搜索2 一.马的遍历 二. 求细胞数量 三.01迷宫 四.奇怪的电梯 五.海战 六.路障 一.马的遍历 题目描述 有一个n*m的棋盘(1<n,m<=400),在某个点上有一个马,要求你计算 ...

  2. 求细胞数量:一矩形阵列由数字 0 到 9 组成,数字 1 到 9 代表细胞,细胞的定义为沿细胞数字上下左右若还是细胞数字则为同一细胞,求给定矩形阵列的细胞个数。

    题目描述 一矩形阵列由数字 0 到 9 组成,数字 1 到 9 代表细胞,细胞的定义为沿细胞数字上下左右若还是细胞数字则为同一细胞,求给定矩形阵列的细胞个数. 输入 第一行两个整数代表矩阵大小 n 和 ...

  3. 求细胞数量pascal题解

    这题我是用广度优先搜索来做的 一开始先一个一个点找,如果这个点是细胞,那么就搜索. 注意:可以把数组开大点 const dx:array[1..4]of longint=(0,-1,0,1); dy: ...

  4. 识别硬币和细胞数量+条形码检测(python+opencv)

    如愿 一.准备工作 二.硬币和细胞数量识别 三.条形码定位和识别 四.总结 五.参考资料 一.准备工作 所用图片 python版本以及opencv版本 python 3.8.12 opencv 3.4 ...

  5. false true求或_如何依据【关键字】求【数量和】

    在实际工作中我们有时候会遇到这样的情况:要求对符合某一关键字的品类求和.例如下例,求所有电视机数量总和. 这里我们需要用到一个逻辑判断函数:ISNUMBER函数.它的语法结构是: ISNUMBER(v ...

  6. 洛谷 P1451【细胞】

    题目描述 一矩形阵列由数字0到9组成,数字1到9代表细胞,细胞的定义为沿细胞数字上下左右若还是细胞数字则为同一细胞,求给定矩形阵列的细胞个数.(1<=m,n<=100)? 输入输出格式 输 ...

  7. 数量乘单价秋金额的计算机公式,“Excel表格中,总计栏怎么设置每一行的数量乘以金额的总和?求公式“数量单价怎么求金额公式...

    Excel表格中,总计栏怎么设置每一行的数量乘以金额的总和?求公式 可以多设一列来做表格,做表格也方便. 具体的操作步骤如下: 1.在顶部插入一列,在H1单元格总填计,在A4单元格中填写总额. 2.在 ...

  8. HDU2018题求母牛数量C++

    #include <iostream> using namespace std; int main() { int a[55],n; int i; a[0]=1,a[1]=2,a[2]=3 ...

  9. python求数列数量积_python中矩阵运算(乘法和数量积)

    # ============================================================================= python中矩阵运算分为两种形式,一是 ...

最新文章

  1. 用户切换命令:su 与 sudo
  2. HTML中有关表格的基本属性知识
  3. Spring Boot 中 @EnableXXX 注解的驱动逻辑探讨
  4. java中try 与catch的使用
  5. fcc认证_介绍fCC 100:我们对2019年杰出贡献者的年度总结
  6. 一次List对象去重失败,引发对Java8中distinct()的思考
  7. ue4渲染速度太慢_技术汇丨如何在UE4中实现最佳性能和高质量视觉效果
  8. JSONArray ja = JSONArray.fromObject(list);//特殊类 用于将list转化为JSON 数据并返回 out.print(ja);...
  9. ABAQUS中获取参考点时间-位移曲线
  10. PS 色相、饱和度、明度
  11. php映射脚本,代替php脚本
  12. 如何提高文案策划能力?
  13. 最佳 Maya 免费建模插件!
  14. 中国电子与IBM携手构建健康云平台;微软推3款机器学习工具;【软件网每日新闻播报│第9-26期】
  15. Kaldi 入门使用教程
  16. 图片标签z-index设置不起作用
  17. 十进制转化成二、八、十六进制的一个小程序
  18. MDN是什么?MDN中文名?MDN Web Docs是什么?MDN Web Docs中文名是什么?
  19. Seq2Seq实战——机器翻译
  20. linux文本编辑三剑客

热门文章

  1. Rsync未授权访问漏洞记录(影响范围:全版本,端口:873)
  2. python 网络框架twisted基础学习及详细讲解
  3. redis配置文件参数详解
  4. jpa-spring -basic
  5. JavaScript-作用域-预解析
  6. java调用wkhtmltopdf生成pdf文件,美观,省事
  7. 进程句柄和进程ID的区别和关系
  8. hover事件注册实例一枚
  9. SVN使用import导入新数据到版本库
  10. Visibiltity:none与Display:none区别