细胞问题


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


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

矩阵


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


输入输出样例


输入 #1

4 10
0234500067
1034560500
2045600671
0000000089


输出 #1
4


代码

#include<stdio.h>
#include<iostream>
using namespace std;
bool f[10005][10005]={false};
int n,m,a[11005][11005],ans=0,st[10005][3];
const int dx[5]={0,0,0,1,-1};
const int dy[5]={0,1,-1,0,0}; //四个方向
void bfs(int i,int j){
int head=0,tail=1; //每次head清0,tail清1
st[1][1]=i;st[1][2]=j;f[i][j]=1;
ans++;
do{
head++;
for(int i=1;i<=4;i++){
int x=st[head][1]+dx[i];
int y=st[head][2]+dy[i];
if(!f[x][y]) //判断有没有用过
if(a[x][y]!=0) //判断是不是细胞数字
if(x>=1&&x<=n&&y>=1&&y<=m){
tail++;
st[tail][1]=x;
st[tail][2]=y;
f[x][y]=true; //标记
}
}
}while(head<=tail);
}
int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
scanf("%1d",&a[i][j]);
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++) //一个一个枚举
if(a[i][j]!=0 and !f[i][j])bfs(i,j);
printf("%d",ans);
return 0;
}

[BFS]细胞问题的更多相关文章

  1. 【新知识】队列&bfs【洛谷p1996约瑟夫问题&洛谷p1451求细胞数量】

    (是时候为五一培训准备真正的技术了qwq) part1  队列(FIFO) 算法简介: FIFO:First In First Out(先进先出) 队列是限定在一端进行插入,另一端进行删除的特殊线性表 ...

  2. 计算细胞数【BFS】

    问题描述 一矩形阵列由数字0到9组成,数字1到9代表细胞,细胞的定义为沿细胞数字上下左右还是细胞数字则为同一细胞,求给定矩形阵列的细胞个数. 输入格式 2行:第1行为两个整数 mm, nn, 代表矩阵 ...

  3. 以细胞为例 说一下dfs和bfs的思路

    今天发现很少写dfs.. dfs主要思想是递归 bfs主要靠队列 先说一下这个题我被阻了半个小时的地方: 1读数一定要注意scanf的吃回车 2注意数据类型为char,判断时是'0' dfs: #in ...

  4. 对于BFS的理解和部分例题(

    (图文无关    雾 搜索是一个NOIP当中经常出现的考点,其实搜索换个方式来想也无非就是让电脑来帮你试,最后得到一个结果,当然这么口胡谁都会,那么我们就来看看搜索当中的一个大部分: BFS(广度优先 ...

  5. 【dfs】p1451 求细胞数量

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

  6. code vs 3492 细胞个数

    题目链接:http://codevs.cn/problem/3492/ 题目描述 Description 一矩形阵列由数字0到9组成,数字1到9代表细胞,细胞的定义为沿细胞数字上下左右还是细胞数字则为 ...

  7. 关于BFS和dijkstra(2019.04.20)

    我的BFS板子 struct node{/*略*/};//表示一个状态 std::map<node,bool>vis;//判断每个状态是否已访问过 std::queue<node&g ...

  8. 洛谷P1451 求细胞数量

    求细胞数量 题目链接 这道题大概是一个最简单的联通块的题了qwq 注意枚举起点的时候 一定不要从0开始不然你就会从0进入到了其他联通块中从而多查. 一定看清题意这道题不是同色为联通块!!! AC代码如 ...

  9. bfs初学

    BFS: ** 当知道初始和目标状态的,用双向BFS: 无权图最好用BFS 不用重复如队** 实现框架: 抄来的(来源:https://www.luogu.org/blog/stephen2333/s ...

随机推荐

  1. TypedArray & buffer

    TypedArray & buffer https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Obj ...

  2. fetch & form-data & upload & image file

    fetch & form-data & upload & image file no need multipart/form-data https://blog.xinshan ...

  3. Mac Benchmarks

    Mac Benchmarks https://browser.geekbench.com/mac-benchmarks https://www.geekbench.com/ https://www.f ...

  4. Flutter: provider 使用小部件的小部件构建的依赖注入系统

    文档 dependencies: provider: import 'package:dart_printf/dart_printf.dart'; import 'package:flutter/ma ...

  5. PAUL ADAMS ARCHITECT:华州加州城市楼市竞争力居全美前列

    美国房地产公司最新一份报告显示,美国楼市竞争力最高的十个城市中有八个来自华盛顿州和加利福尼亚州,主要原因在于越来越多的买家考虑迁居房价更划算的都会区.数据显示,斯潘那维65%的房屋以高于要价的价格售出 ...

  6. 链表、栈、队列、KMP相关知识点

    链表.栈与队列.kmp; 数组模拟单链表: 用的最多的是邻接表--就是多个单链表: 作用:存储树与图 需要明确相关定义: 为什么需要使用数组模拟链表 比使用结构体 或者类来说 速度更快 代码简洁 算法 ...

  7. git相关问题

    1.git查看远程分支更新到本地 git clone 项目地址,示例如下: git clone https://github.com/zhongyushi-git/vue-test.git 在拉取时, ...

  8. nginx反向代理、负载均衡以及分布式下的session保持

    [前言]部署服务器用到了nginx,相比较于apache并发能力更强,优点也比其多得多.虽然我的项目可能用不到这么多性能,还是部署一个流行的服务器吧! 此篇博文主要学习nginx(ingine x)的 ...

  9. Kubernetes 实战 —— 01. Kubernetes 介绍

    简介 P2 Kubernetes 能自动调度.配置.监管和故障处理,使开发者可以自主部署应用,并且控制部署的频率,完全脱离运维团队的帮助. Kubernetes 同时能让运维团队监控整个系统,并且在硬 ...

  10. s2010 安装mvc3

    下载链接如下:MVC 3安装包:http://www.microsoft.com/downloads/zh-cn/details.aspx?familyid=d2928bc1-f48c-4e95-a0 ...