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】相关推荐

  1. AcWing 198. [HAOI2007] 反素数 约数个数+dfs

    题 参考 约数个数:每个质因数的次数+1的乘积. 2e9<2x3x5x7x11x13x17x19x23; 2e9<pow(2,31); last其实是最多扫30次. #include< ...

  2. 程序设计入门经典题解(百练篇)

    参考链接:PKU百练题解(Bailian) Bailian1017 装箱问题[贪心] - 海岛Blog - CSDN博客 POJ1088 Bailian1088 滑雪[DFS+记忆化搜索]_海岛Blo ...

  3. 电子学会 青少年软件编程等级考试 C语言 5 级

    5级-2020-12-01-漫漫回国路 5级-2020-12-02-装箱问题 19:装箱问题 OpenJudge - 19:装箱问题 8785:装箱问题 OpenJudge - 8785:装箱问题 1 ...

  4. ​​​​​​青少年软件编程(C语言)等级考试试卷目录一览

    ​​​​​​青少年软件编程(C语言)等级考试试卷目录一览   持续更新中...... 2022-12-10   C语言等考一级 T1. 加一    T2. (a/b)*c的值    T3. 判断是否存 ...

  5. dfs解决选或不选问题

    目录 92. 递归实现指数型枚举 神奇的口袋 01背包问题 在做题的时候,有的问题就是问你这个东西选或不选的问题.专业说法叫做01背包. 我个人觉的叫选不选问题更能通速易懂. 92. 递归实现指数型枚 ...

  6. leetcode 78.子集 dfs解法

    给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集). 说明:解集不能包含重复的子集. 示例: 输入: nums = [1,2,3] 输出: [[3],[1],[2],[1,2, ...

  7. nyist oj 19 擅长排列的小明(dfs搜索+STL)

    擅长排列的小明 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描写叙述 小明十分聪明.并且十分擅长排列计算.比方给小明一个数字5,他能立马给出1-5按字典序的全排列,假设你想 ...

  8. 【DFS】【剪枝】数独(简单版)

    题目链接: https://www.acwing.com/problem/content/168/ 搜索以及剪枝策略: 搜索顺序优化: 首先搜索可填最少数量数字的格子 二进制优化:用两个数组row[] ...

  9. DFS(Depth First Search,深度优先搜索)与BFS(Breadth First Search,广度优先搜索)总结与思考

    目录 Depth First Search(dfs) 代码(递归) 代码(非递归) Breadth First Search(bfs) 代码 比较 数据结构 时间复杂度 使用 例题:岛的个数 dfs实 ...

最新文章

  1. rtop – 通过SSH监控远程主机
  2. 线性模型和非线性模型的区别
  3. 详解虚函数的实现过程之单继承(2)
  4. 大神对飞控精准高度估计算法解读
  5. 深度学习之卷积神经网络 GoogleNet
  6. c语言递归建链表,递归创建二叉树c语言实现+详细解释
  7. java程序课程总结_Java课程总结报告.pdf
  8. ubuntu 安装 wifi 驱动_论如何在 MacBook Pro 安装 Ubuntu 18.04(解决 wifi、触摸板、键盘驱动)...
  9. 软考倒计时7天:题目书中的易混点
  10. Linux下的less命令
  11. php定时发送生日模块消息_RabbitMQ之消息的可靠性投递
  12. pandownload获取bdstoken失败怎么回事_巴菲特点透中国股市:假如你手中持有的股票早上快速拉高然后慢慢下跌,你晓得是怎么回事吗?...
  13. 彻底搞懂 Git 进阶用法
  14. 【知识点总结】大数据技术原理与应用
  15. web前端——数据库
  16. 【学习day1】图像分类数据集+softmax回归
  17. 2018.09.02【BZOJ2227】【ZJOI2011】看电影 (高精度)(组合数)
  18. C语言机器人视觉系统原理,机器人视觉系统的组成及工作原理
  19. axios 获取本地json文件
  20. win10家庭版无法更改账户名称怎么办?

热门文章

  1. matlab求解集合覆盖问题,Set Cover Problem (集合覆盖问题)
  2. canvas换图时候会闪烁_基于Canvas实现的高斯模糊(上)「JS篇」
  3. 服务器没有进行新建或修改数据的操作,14-认识DjangoRESTframework
  4. 从request中获取上一个请求的url
  5. 学习Java 第 4天 流程控制语句 one大白(●—●)
  6. Impala内存优化
  7. android 视频标签,android--------WebView实现 Html5 视频标签加载
  8. atoi java,leetcode题目8: 字符串转换整数 (atoi)(java)
  9. 2018 蓝桥杯省赛 B 组模拟赛(五)题 B题
  10. Sublime Text3 注册码激活码