【题目描述】

有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上,只能向相邻的黑色瓷砖移动。请写一个程序,计算你总共能够到达多少块黑色的瓷砖。

【输入】

包括多组数据。每组数据的第一行是两个整数W和H,分别表示x方向和y方向瓷砖的数量。W和H都不超过20。在接下来的H行中,每行包括W个字符。每个字符表示一块瓷砖的颜色,规则如下:

1)‘.’:黑色的瓷砖;

2)‘#’:白色的瓷砖;

3)‘@’:黑色的瓷砖,并且你站在这块瓷砖上。该字符在每组数据中唯一出现一次。

当在一行中读入的是两个零时,表示输入结束。

【输出】

对每组数据,分别输出一行,显示你从初始位置出发能到达的瓷砖数(记数时包括初始位置的瓷砖)。

【输入样例】

6 9
....#.
.....#
......
......
......
......
......
#@...#
.#..#.
0 0

【输出样例】

45
#include<stdio.h>
int m, n;
char c[30][30];
int dir[][2] = { {1,0},{-1,0},{0,-1},{0,1} };
bool vis[30][30];
int max;
void dfs(int xa, int ya)
{for (int i = 0; i < 4; i++){int nx = xa + dir[i][0];int ny = ya + dir[i][1];if (nx >= 0 && nx < n && ny >= 0 && ny < m && c[nx][ny] == '.' && vis[nx][ny] == 0){max++;vis[nx][ny] = 1;dfs(nx, ny);}}
}
int main()
{while (scanf("%d%d", &m, &n) != EOF){int xa, ya;max = 1;if (m == 0 && n == 0){break;}memset(vis, 0, sizeof(vis));for (int i = 0; i < n; i++){scanf("%s", c[i]);}for (int i = 0; i < n; i++){for (int j = 0; j < m; j++){if (c[i][j] == '@'){xa = i;ya = j;}}}vis[xa][ya] = 1;dfs(xa, ya);printf("%d\n", max);}return 0;
}

一本通 1216:红与黑相关推荐

  1. 信息学奥赛一本通 1216:红与黑 / OpenJudge NOI 2.5 1818

    [题目链接] ybt 1216:红与黑 OpenJudge NOI 2.5 1818:红与黑 [题目考点] 1. 连通块问题 2. 深搜/广搜 [解题思路] 1. 深搜 从第一个格子出发,遍历所有可以 ...

  2. 经典问题的另类解法——以信息学奥赛一本通c++版1216红与黑为例

    题目链接:信息学奥赛一本通(C++版)在线评测系统 (ssoier.cn) 题目描述: 有一间长方形的房子,地上铺了红色.黑色两种颜色的正方形瓷砖.你站在其中一块黑色的瓷砖上,只能向相邻的黑色瓷砖移动 ...

  3. 信息学奥赛一本通(基础算法与数据结构-题解汇总目录)

    信息学奥赛一本通(C++版)在线评测系统 基础(二)基础算法   更新中...... 第一章高精度计算 1307[例1.3]高精度乘法 1308[例1.5]高精除 1309[例1.6]回文数(Noip ...

  4. 信息学奥赛一本通超详细题解,动画图文题解

    内容来源于微信公众号:大神编程.已经过原文作者授权. 更新时间:2020-11-5 现在开始更新基础算法题. 个人感言:从未见过如此详细的题解,动画.图文结合,适合任何水平的选手.尤其是特别适合自学的 ...

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

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

  6. 信息学奥赛一本通(1216:红与黑)

    1216:红与黑 时间限制: 1000 ms         内存限制: 65536 KB 提交数: 17280     通过数: 6739 [题目描述] 有一间长方形的房子,地上铺了红色.黑色两种颜 ...

  7. AcWing 1113. 红与黑【《信息学奥赛一本通》】【DFS】【BFS】【Flood Fill】

    AcWing 1113. 红与黑 一.题目链接 二.题目分析 (一)算法标签 (二)解题思路 三.AC代码 解法一(BFS): 解法二(DFS): 四.其它题解 一.题目链接 AcWing 1113. ...

  8. 红与黑(信息学奥赛一本通-T1216)

    [题目描述] 有一间长方形的房子,地上铺了红色.黑色两种颜色的正方形瓷砖.你站在其中一块黑色的瓷砖上,只能向相邻的黑色瓷砖移动.请写一个程序,计算你总共能够到达多少块黑色的瓷砖. [输入] 包括多个数 ...

  9. 信息学奥赛一本通 (C++)上机练习

    信息学奥赛一本通(C++)上机练习 此书为娃儿的第一本刷题书.娃儿现在四年级 ,希望他能坚持下来.特开贴加油 luogu: disangan223 第一部分 C++语言 第一章 C++语言入门 T10 ...

最新文章

  1. html点击区域,求助HTML+CSS可以点击区域外关闭实现。
  2. 风控建模 python 知乎_风控建模基本要求及面试问题小结
  3. MVC2验证(自定义异常)
  4. python拓展7(Celery消息队列配置定时任务)
  5. 对未标记为可安全执行的脚本_三、??XSS跨站脚本攻击
  6. HDFS学习 Java连接hadoop
  7. 【Win32 API学习】模拟键盘输入和鼠标输入
  8. 已解决 selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element 找不到元素的问题
  9. java分页插件使用_MyBatis-Plus之分页插件使用
  10. azure blob_在Azure中使用表,blob,队列和文件存储
  11. mysql 字段值保留2位小数
  12. 总结CSS3新特性(Transition篇)
  13. Python Seaborn教程
  14. python结构体数组传出接收c动态库_使用Python向C语言的链接库传递数组、结构体、指针类型的数据...
  15. MQTT 连接服务端失败,报错客户机未连接(32104)
  16. ArrayList学习[常用方法|源码]
  17. SELECT 基本语法结构
  18. 通过PDMS系统文件快速批量添加颜色规则
  19. 锚杆拉拔试验弹性模量计算_锚杆拉拔试验检测标准
  20. java生成zipf分布_用于文本生成的Java中的Zipf定律 – 太慢了

热门文章

  1. mysql查询出过去一个月_mysql查询过去一月半年一年的时间
  2. 语音差分编码(DPCM)的实现与改进——Python实现
  3. ActiveX控件开发(转)
  4. 内容运营是什么?怎么拉动用户增长
  5. 浏览器趋势2014年6月:Chrome的崛起仍在继续
  6. SAP入门技术分享四:模块化程序
  7. 玩转OLED,U8g2动画,增长数字和随机三角形等
  8. Python+pymupdf处理PDF文档案例6则
  9. 立体视觉 -- 相机畸变矫正(去畸变)
  10. ansible填坑记一,UNREACHABLE