蒜厂有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上,只能向相邻的黑色瓷砖移动。

请写一个程序,计算你总共能够到达多少块黑色的瓷砖。

输入格式
第一行是两个整数 WW 和 HH,分别表示 xx 方向和 yy 方向瓷砖的数量。WW 和 HH 都不超过 2020。

在接下来的 HH 行中,每行包括 WW 个字符。每个字符表示一块瓷砖的颜色,规则如下

1)’.’:黑色的瓷砖;
2)’#’:白色的瓷砖;
3)’@’:黑色的瓷砖,并且你站在这块瓷砖上。该字符在每个数据集合中唯一出现一次。

输出格式
输出一行,显示你从初始位置出发能到达的瓷砖数(记数时包括初始位置的瓷砖)。

输出时每行末尾的多余空格,不影响答案正确性

样例输入
6 9
…#.
…#





#@…#
.#…#.
样例输出
45

卑微的博主现在只能提供深搜解法:(到现在位置也没有具体分清楚广搜和深搜)
话不多说 解释都在代码中


```cpp
#include<iostream>
using namespace std;
int n,m;
int step=0;
char map[30][30];  //用来记录黑白瓷砖
bool visit[30][30];  //用来记录是否走过
int tr[4][2]={{-1,0},{1,0},{0,-1},{0,1}};  //定义一个数组来表示每一个位置可以进行的尝试
bool in(int x,int y)    //bool型变量判断是否还在规定区域内
{return 0<=x&&x<n&&0<=y&&y<n;}
void dfs(int x,int y)   //最重要的部分    深搜
{step++;  //用step表示可以走到的砖块数 visit[x][y]=1;  //走过的地方记录在 visit中  防止重复 for(int i=0;i<4;i++)  //每一个位置都尝试四种可能 {int tx=x+tr[i][0];int ty=y+tr[i][1];if(!visit[tx][ty]&&map[tx][ty]=='.'&&in(tx,ty))/*判断每一种可能是否符合要求  (1.未走过 2.是可以走的黑(or红)砖  写到这里 原谅博主已经忘记了原题  3.是否还在规定区域内)*/ {dfs(tx,ty); }}
}
int main()
{cin>>m>>n;   //m代表x方向(也就是列)  n代表y方向(也就是行) int x,y;for(int i=0;i<n;i++)  //输入n*m矩阵 for(int j=0;j<m;j++){cin>>map[i][j];if(map[i][j]=='@')    //判断初始位置  并将其行和列位置赋给x,y记录 {x=i;y=j;}}dfs(x,y);  //深搜 cout<<step;return 0;
}

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

  1. (深搜)蒜厂有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上,只能向相邻的黑色瓷砖移动。(深搜)

    蒜厂有一间长方形的房子,地上铺了红色.黑色两种颜色的正方形瓷砖.你站在其中一块黑色的瓷砖上,只能向相邻的黑色瓷砖移动. 请写一个程序,计算你总共能够到达多少块黑色的瓷砖. 输入格式 第一行是两个整数  ...

  2. JavaDay03.练习1.写一个程序,计算KFC饮料第二杯半价策略

    写一个程序,计算KFC饮料第二杯半价策略 输入饮料的单价和购买杯数,然后得出需要花费多少钱? (半价策略即偶数杯都是半价的) import java.util.Scanner;/** * 写一个程序, ...

  3. c语言 运算符op,1 简单计算器。请编写一个程序计算表达式:datal op data2的值。其中op为运算符+、—、*、/。...

    满意答案 770vivozf 2013.03.02 采纳率:43%    等级:9 已帮助:769人 1.简单计算器.请编写一个程序计算表达式:datal op data2的值.其中op为运算符+.- ...

  4. 问题 B: 给苹果分级  直径达到15cm及以上的苹果定为A级,直径达到10cm及以上的苹果定为B级,其他苹果定为C级。请写一个程序帮华逢春实现苹果分级。

    问题 B: 给苹果分级 时间限制: 1 Sec 内存限制: 128 MB 提交: 2421 解决: 1772 [提交] [状态] [讨论版] [命题人:admin] 题目描述 华逢春种的苹果获得了大丰 ...

  5. “回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。请写一个程序判断读入的字符串是否是“回文”。

    # include <stdio.h> # include <string.h>int main (void) {int n;while (scanf("%d&quo ...

  6. 题目39:请帮助Larry写一个程序,通过过去12个月中每月的月末结余,计算平均结余。

    题目转载:http://python.wzms.com/s/1/29 题目描述: Larry今年毕业并找到了一份工作.他赚很多钱,但似乎总是不够.Larry认为他需要控制他的投资以解决自己的财务问题. ...

  7. c语言计算个人所得税作业,写一个程序,输入任何一个公民的月收入和五险一金,能够计算他应缴纳的个人所得税.用C语言...

    问题描述: 写一个程序,输入任何一个公民的月收入和五险一金,能够计算他应缴纳的个人所得税.用C语言 3.我国的个人所得税实行累进税率,计算办法是:用全月应纳税所得额分为几个级别,分别乘以累进税率,几个 ...

  8. 某公司有一台打印、复印一体机,需要将购买成本分年均摊到隔年的费用中。请编写一个程序,根据用户输入的购买金额和预计使用年限计算每年的分摊费用。要求对输入异常进行适当的处理。

    某公司有一台打印.复印一体机,需要将购买成本分年均摊到隔年的费用中. 请编写一个程序,根据用户输入的购买金额和预计使用年限计算每年的分摊费用. 要求对输入异常进行适当的处理. def compute_ ...

  9. c语言程序输入n个数字排序,请问,C语言能人请进,用写一个程序,要求输入N个整数,按从小到大的顺序输出,就说说...

    导航:网站首页 > 请问,C语言能人请进,用写一个程序,要求输入N个整数,按从小到大的顺序输出,就说说 时间:2016-12-18 用写一个程序,要求输入N个整数,按从小到大的顺序输出,就说说思 ...

最新文章

  1. 猫哥教你写爬虫 006--条件判断和条件嵌套
  2. SpringBoot___自定义消息转换器、MVC配置
  3. 【软考】2017年11月软件设计师上午真题9-12题答案解析
  4. Maven 单元测试
  5. python输出jpg_利用python实现.dcm格式图像转为.jpg格式
  6. jQuery 计时器(jquery timers)简单应用
  7. 微信公众平台获取用户地理位置之开发文档详解
  8. Android移动应用基础教程【Android事件处理】
  9. Atitit.计算机图形图像图片处理原理与概论attilax总结
  10. 硅谷战争:苹果、Google和微软上演三国演义
  11. 在线免费OCR文字识别工具,强烈推荐,这是目前用过最良心的
  12. 海底捞成功的全套培训体系(收藏)
  13. cookiecutter笔记
  14. Malformed \uxxxx encoding解决方法
  15. 写给产品经理的12封信(第07封:学习能力)
  16. 加速度,陀螺仪6轴传感器调试心得。
  17. 项目案例之GitLab的数据迁移
  18. 多线程(一) 线程概念及创建线程的方法
  19. 中国武术高手要在郑州开比武大会?还请了马云做裁判?
  20. c语言中的stdbool.h头文件,【C语言】中的stdbool.h头文件

热门文章

  1. error flash download failed“Contex M3“
  2. HDU2504 FLY
  3. serv服务器怎么设置欢迎消息,serv-u登陆欢迎信息参数设置技巧_其他工具教程
  4. 用Excel做一周的表,这个工具一天就能搞定,比python还牛
  5. 嵌入式开发之hisilicon---hi3536 处理器简介
  6. 用c语言编写字母循环,C程序使用循环显示从A到Z的字符
  7. 第十三章 密码破解
  8. 教程篇(7.0) 05. FortiGate安全 防火墙认证 ❀ Fortinet 网络安全专家 NSE 4
  9. 历年英语四级高频单词统计
  10. 高频SQL使用知识点