Bailian4101 晶矿的个数【DFS】
4101:晶矿的个数
总时间限制: 1000ms 内存限制: 65536kB
描述
在某个区域发现了一些晶矿,已经探明这些晶矿总共有分为两类,为红晶矿和黑晶矿。现在要统计该区域内红晶矿和黑晶矿的个数。假设可以用二维地图m[][]来描述该区域,若m[i][j]为#表示该地点是非晶矿地点,若m[i][j]为r表示该地点是红晶矿地点,若m[i][j]为b表示该地点是黑晶矿地点。一个晶矿是由相同类型的并且上下左右相通的晶矿点组成。现在给你该区域的地图,求红晶矿和黑晶矿的个数。
输入
第一行为k,表示有k组测试输入。
每组第一行为n,表示该区域由n*n个地点组成,3 <= n<= 30
接下来n行,每行n个字符,表示该地点的类型。
输出
对每组测试数据输出一行,每行两个数字分别是红晶矿和黑晶矿的个数,一个空格隔开。
样例输入
2
6
r##bb#
###b##
#r##b#
#r##b#
#r####
4
#rrb
#rr#
##bb
样例输出
2 2
1 2
问题链接:Bailian4101 晶矿的个数
问题简述:(略)
问题分析:简单的DFS问题,分别计数一下就好了。为了保证连在一起的不要重复计算,用DFS来标记。
程序说明:(略)
参考链接:(略)
题记:(略)
AC的C++语言程序如下:
/* Bailian4101 晶矿的个数 */#include <bits/stdc++.h>using namespace std;const int N = 30;
char b[N][N + 1];
int n;void dfs(int r, int c, char type)
{if(r < 0 || r >= n || c < 0 || c >= n) return;if(b[r][c] != type) return;b[r][c] = '#';dfs(r - 1, c, type);dfs(r + 1, c, type);dfs(r, c - 1, type);dfs(r, c + 1, type);
}int main()
{int k;scanf("%d", &k);while(k--) {scanf("%d", &n);for(int i = 0; i < n; i++)scanf("%s", b[i]);int rcnt = 0, bcnt = 0;for(int i = 0; i < n; i++)for(int j = 0; j < n; j++)if(b[i][j] == 'r') {rcnt++;dfs(i, j, 'r');} else if(b[i][j] == 'b') {bcnt++;dfs(i, j, 'b');}printf("%d %d\n", rcnt, bcnt);}return 0;
}
Bailian4101 晶矿的个数【DFS】相关推荐
- AcWing 198. [HAOI2007] 反素数 约数个数+dfs
题 参考 约数个数:每个质因数的次数+1的乘积. 2e9<2x3x5x7x11x13x17x19x23; 2e9<pow(2,31); last其实是最多扫30次. #include< ...
- 程序设计入门经典题解(百练篇)
参考链接:PKU百练题解(Bailian) Bailian1017 装箱问题[贪心] - 海岛Blog - CSDN博客 POJ1088 Bailian1088 滑雪[DFS+记忆化搜索]_海岛Blo ...
- 电子学会 青少年软件编程等级考试 C语言 5 级
5级-2020-12-01-漫漫回国路 5级-2020-12-02-装箱问题 19:装箱问题 OpenJudge - 19:装箱问题 8785:装箱问题 OpenJudge - 8785:装箱问题 1 ...
- 青少年软件编程(C语言)等级考试试卷目录一览
青少年软件编程(C语言)等级考试试卷目录一览 持续更新中...... 2022-12-10 C语言等考一级 T1. 加一 T2. (a/b)*c的值 T3. 判断是否存 ...
- dfs解决选或不选问题
目录 92. 递归实现指数型枚举 神奇的口袋 01背包问题 在做题的时候,有的问题就是问你这个东西选或不选的问题.专业说法叫做01背包. 我个人觉的叫选不选问题更能通速易懂. 92. 递归实现指数型枚 ...
- leetcode 78.子集 dfs解法
给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集). 说明:解集不能包含重复的子集. 示例: 输入: nums = [1,2,3] 输出: [[3],[1],[2],[1,2, ...
- nyist oj 19 擅长排列的小明(dfs搜索+STL)
擅长排列的小明 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描写叙述 小明十分聪明.并且十分擅长排列计算.比方给小明一个数字5,他能立马给出1-5按字典序的全排列,假设你想 ...
- 【DFS】【剪枝】数独(简单版)
题目链接: https://www.acwing.com/problem/content/168/ 搜索以及剪枝策略: 搜索顺序优化: 首先搜索可填最少数量数字的格子 二进制优化:用两个数组row[] ...
- DFS(Depth First Search,深度优先搜索)与BFS(Breadth First Search,广度优先搜索)总结与思考
目录 Depth First Search(dfs) 代码(递归) 代码(非递归) Breadth First Search(bfs) 代码 比较 数据结构 时间复杂度 使用 例题:岛的个数 dfs实 ...
最新文章
- rtop – 通过SSH监控远程主机
- 线性模型和非线性模型的区别
- 详解虚函数的实现过程之单继承(2)
- 大神对飞控精准高度估计算法解读
- 深度学习之卷积神经网络 GoogleNet
- c语言递归建链表,递归创建二叉树c语言实现+详细解释
- java程序课程总结_Java课程总结报告.pdf
- ubuntu 安装 wifi 驱动_论如何在 MacBook Pro 安装 Ubuntu 18.04(解决 wifi、触摸板、键盘驱动)...
- 软考倒计时7天:题目书中的易混点
- Linux下的less命令
- php定时发送生日模块消息_RabbitMQ之消息的可靠性投递
- pandownload获取bdstoken失败怎么回事_巴菲特点透中国股市:假如你手中持有的股票早上快速拉高然后慢慢下跌,你晓得是怎么回事吗?...
- 彻底搞懂 Git 进阶用法
- 【知识点总结】大数据技术原理与应用
- web前端——数据库
- 【学习day1】图像分类数据集+softmax回归
- 2018.09.02【BZOJ2227】【ZJOI2011】看电影 (高精度)(组合数)
- C语言机器人视觉系统原理,机器人视觉系统的组成及工作原理
- axios 获取本地json文件
- win10家庭版无法更改账户名称怎么办?
热门文章
- matlab求解集合覆盖问题,Set Cover Problem (集合覆盖问题)
- canvas换图时候会闪烁_基于Canvas实现的高斯模糊(上)「JS篇」
- 服务器没有进行新建或修改数据的操作,14-认识DjangoRESTframework
- 从request中获取上一个请求的url
- 学习Java 第 4天 流程控制语句 one大白(●—●)
- Impala内存优化
- android 视频标签,android--------WebView实现 Html5 视频标签加载
- atoi java,leetcode题目8: 字符串转换整数 (atoi)(java)
- 2018 蓝桥杯省赛 B 组模拟赛(五)题 B题
- Sublime Text3 注册码激活码