细胞(搜索)

问题 T: 【搜索】细胞

时间限制: 1 Sec  内存限制: 64 MB
提交: 7  解决: 7
[提交] [状态] [讨论版] [命题人:外部导入]

题目描述

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

输入

用空格隔开的整数m,n(m行,n列)矩阵(1≤m,n≤100)。

输出

细胞的个数。

样例输入

复制样例数据

4 10
0234500067
1034560500
2045600671
0000000089

样例输出

4
逐个bfs,符合条件标记为0
#include<bits/stdc++.h>
#include<queue>
#include<iostream>
using namespace std;
int p[105][105];
struct node {
	int x, y;
};
queue<node>q;
int ans, d[4][2] = { {0,1},{0,-1},{1,0},{-1,0} },m,n;
void bfs() {
	while (!q.empty()) {
		node tmp = q.front();
		q.pop();
		int cx = tmp.x, cy = tmp.y;
		for (int i = 0; i < 4; i++) {
			int ex = cx + d[i][0], ey = cy + d[i][1];
			if (ex >= 1 && ey >= 1 && ex <= m && ey <= n && p[ex][ey] != 0) {
				q.push(node{ ex,ey });
				p[ex][ey] = 0;
			}
		}
	}
}
int main() {
	cin >> m >> n;
	for (int i = 1; i <= m; i++) {
		for (int j = 1; j <= n; j++) {
			scanf("%1d",&p[i][j]);
		}
	}
	for (int i = 1; i <= m; i++) {
		for (int j = 1; j <= n; j++) {
			if (!p[i][j])continue;
			q.push(node{ i,j });
			ans++;
			p[i][j] = 0;
			bfs();
		}
	}
	cout << ans << endl;
}

  

原文地址:https://www.cnblogs.com/czy-power/p/10356461.html

时间: 2024-10-16 03:30:38

细胞(搜索)的相关文章

ybt 1329 细胞 广度优先搜索 (二维,寻找符合条件节点)

1329:[例8.2]细胞 时间限制: 1000 ms         内存限制: 65536 KB提交数: 8535     通过数: 4744 [题目描述] 一矩形阵列由数字00到99组成,数字11到99代表细胞,细胞的定义为沿细胞数字上下左右还是细胞数字则为同一细胞,求给定矩形阵列的细胞个数.如: 阵列 4 10 0234500067 1034560500 2045600671 0000000089 有44个细胞. [输入] 第一行为矩阵的行nn和列mm; 下面为一个n×mn×m的矩阵.

洛谷——基础搜索

1.P1706 全排列问题 题目描述 输出自然数1到n所有不重复的排列,即n的全排列,要求所产生的任一数字序列中不允许出现重复的数字. 输入输出格式 输入格式: n(1≤n≤9) 输出格式: 由1-n组成的所有不重复的数字序列,每行一个序列.每个数字保留5个常宽. 输入输出样例 输入样例#1: 3 输出样例#1: 1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1 (⊙v⊙)嗯~ 代码: #include<iostream> #include<cstdio> #

Dfs/Bfs/记忆化搜索问题 | 问题集合

写在前面 动归和搜索似乎我打得特憋懒. 可能是因为搜索打的太少了??? 然后之前做过的一些题我就不再写了,比如填涂颜色/海战啥的? 然后每一题打两种解法(:Dfs/Bfs 前提是在题目里两种都能A P1596 湖计数 题目描述 Due to recent rains, water has pooled in various places in Farmer John's field, which is represented by a rectangle of N x M (1 <= N <=

LeetCode第[79]题(Java):Word Search(矩阵单词搜索)

题目:矩阵单词搜索 难度:Medium 题目内容: Given a 2D board and a word, find if the word exists in the grid. The word can be constructed from letters of sequentially adjacent cell, where "adjacent" cells are those horizontally or vertically neighboring. The same

算法之智能搜索(上)

笔者并不了解,各大搜索网站是怎么实现智能搜索的.以下只是笔者一时的想法,笔者觉得这个方法可以实现智能匹配搜索内容. 一.首先我们获取细胞词库内容 ①建表语句: DROP TABLE IF EXISTS `sougou_ciku`; CREATE TABLE `sougou_ciku` ( `id` varchar(50) NOT NULL, `text` varchar(100) NOT NULL, `below` varchar(50) default NULL, `remark` varch

1329:【例8.2】细胞

[题目描述] 一矩形阵列由数字00到99组成,数字11到99代表细胞,细胞的定义为沿细胞数字上下左右还是细胞数字则为同一细胞,求给定矩形阵列的细胞个数.如: 阵列 4 10 0234500067 1034560500 2045600671 0000000089 有44个细胞. [输入] 第一行为矩阵的行nn和列mm; 下面为一个n×mn×m的矩阵. [输出] 细胞个数. [输入样例] 4 10 0234500067 1034560500 2045600671 0000000089 [输出样例]

Android零基础入门第62节:搜索框组件SearchView

原文:Android零基础入门第62节:搜索框组件SearchView 一.SearchView概述 SearchView是搜索框组件,它可以让用户在文本框内输入文字,并允许通过监听器监控用户输入,当用户输入完成后提交搜索时,也可通过监听器执行实际的搜索. SearchView默认是展示一个search的icon,点击icon展开搜索框,也可以自己设定图标.用SearchView时可指定如下表所示的常见XML属性及相关方法. 如果为SearchView增加一个配套的ListView,则可以为Se

Android----- 改变图标原有颜色 和 搜索框

本博客主要讲以下两点知识点 图标改变颜色:Drawable的变色,让Android也能有iOS那么方便的图片色调转换,就像同一个图标,但是有多个地方使用,并且颜色不一样,就可以用这个方法了. 搜索框: 一般是EditText实现,本文 实现 TextView图片和文字居中,键盘搜索. 来看看效果图: 图标改变颜色:第一个界面的左边(二维码)和右边(更多)两个实现,我放进去的图片是黑色的,显示出来是白色的. 搜索框:第一个界面的图片和文字居中,还可以设置间距,第二个见面搜索设置键盘搜索按钮,点击搜

移动端 input 获取焦点后弹出带enter(类似于搜索,确定,前往)键盘,以及隐藏系统键盘

一:调出系统带回车键的键盘 在项目中经常有输入框,当输入完成后点击确定执行相应的动作.但是有些设计没有确定或者搜索按钮,这就需要调用系统键盘,点击系统键盘的确定后执行相应动作. 但是单纯的input是无法实现的,要想调出带回车的键盘必须把input放在form表单里面才可以,并且得加上action(一定要加),下面是个简单的例子. <form action class="search" onsubmit="return false;"> <i cl