当前编程题:实验四 基础算法问题(16级)---Red and Black

1.
问题描述
There is a rectangular room,covered with square tiles. Each tile is colored either red or black. A man is standing on a black tile. From a tile, he can move to one of four adjacent tiles. But he can't move on red tiles, he can move only on black tiles.
Write a program to count the number of black tiles which he can reach by repeating the moves described above.
输入形式
The input consists of multiple data sets. A data set starts with a line containing two positive integers W and H; W and H are the numbers of tiles in the x- and y- directions, respectively. W and H are not more than 20.
There are H more lines in the data set, each of which includes W characters. Each character represents the color of a tile as follows.
'.' - a black tile
'#' - a red tile
'@' - a man on a black tile(appears exactly once in a data set)
The end of the input is indicated by a line consisting of two zeros.
输出形式
For each data set, your program should output a line which contains the number of tiles he can reach from the initial tile (including itself).
样例输入
6 9
....#.
.....#
......
......
......
......
......
#@...#
.#..#.
0 0
样例输出
45
中文翻译:
问题描述
有一个长方形的房间,用方瓷砖覆盖地面。瓷砖的颜色是红色或黑色。一个人站在一个黑色的瓷砖上。从一个瓷砖可以移动到相邻的四个瓷砖上。但他不能移动到红色瓷砖上,他仅可以在黑色的瓷砖上移动。
编写一个程序来计算他可以到达的黑瓷砖数量。
输入形式
输入由多组数据组成。一组数据由一个包含两个正整数W和H开始;W和H分别是在x和y方向的瓷砖数。W和H不超过20。
有H行的数据,其中每行包括W个字符。每个字符代表一个瓷砖的颜色。
'.' - 黑色瓷砖
'#' - 红色瓷砖
'@' -黑色瓷砖的一个人(在数据中只出现一次)
输入结束: 由两个零组成的数表示。
输出形式

对于每组数据,你的程序应该输出一行,包含了从最初的瓷砖开始可以达到的瓷砖数量(包括最初的瓷砖)。

#include<iostream>
using namespace std;
int W,H;
char aa[20][20];

int f(int x,int y)
{
if(x<0|| x>=H ||y<0 ||y>=W ||aa[x][y]=='#' )
{
return 0;
}
else
{
aa[x][y]='#';
return (1+f(x-1,y)+f(x+1,y)+f(x,y-1)+f(x,y+1));
}
}

int main()
{
int p,q;
while(1)
{
cin>>W>>H;
if(W==0  ||H==0)
{
break;
}
   for(int i=0;i<H;i++)
    {
    for(int j=0;j<W;j++)
    {
    cin>>aa[i][j];
    if(aa[i][j]=='@')            //啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊  我被这里坑到了  气的我都想砸电脑  怎么也找不出错   竟然是这里         !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    {
    p=i;q=j;
    }
    }
    }
    cout<<f(p,q)<<endl;
}
return 0;
}

练习系统 实验四 red and black相关推荐

  1. CUMT矿大----电路与数字系统实验四 计数、译码、显示的HDL设计

    软件:Quartus II 9.0 (64-Bit)    AHDL语言 看完觉得不错的点个赞呗╰(*°▽°*)╯不要白嫖啊 一.60进制计数器(静态显示) 分频模块(输入时钟40MHZ) subde ...

  2. 2021年春季学期-信号与系统-第四次作业参考答案-MATLAB实验1

    ![](https://img-blog.csdnimg.cn/20210316221220995.gif#pic_center#pic_center =800x#pic_center =640x) ...

  3. 2021年春季学期-信号与系统-第四次作业参考答案-MATLAB实验题2

    本文是 2021年春季学期-信号与系统-第四次作业参考答案 的内容. ▌MATLAB实验题2 2. 回声的模拟与消除 在山间,或者洞穴中说活,会听到回声,这是声音在相距较远的山壁之间来回反射传播产生的 ...

  4. # 2017-2018-1 20155224 《信息安全系系统设计基础》实验四

    2017-2018-1 20155224 <信息安全系系统设计基础>实验四 外设驱动程序设计-1 学习资源中全课中的"hqyj.嵌入式Linux应用程序开发标准教程.pdf&qu ...

  5. 单自由度系统的振动的幅频特性曲线及相频特性曲线及matlab分析,实验四 线性系统的频域分析...

    实验四 线性系统的频域分析 一.实验目的 1.掌握用MA TLAB 语句绘制各种频域曲线. 2.掌握控制系统的频域分析方法. 二.基础知识及MATLAB 函数 频域分析法是应用频域特性研究控制系统的一 ...

  6. matlab系统频率特性分析实验报告,实验四 线性系统频率特性的测试

    实验四 线性系统频域特性的测试 一.实验目的 1.学会用MATLAB 求取系统频率特性的方法. 2.掌握利用频率特性分析系统性能方法. 二.实验内容 1.绘制出典型二阶系统6=n ω,1.0=ξ, 0 ...

  7. 20202407 2021-2022-2 《网络与系统攻防技术》实验四实验报告

    20202407 2021-2022-2 <网络与系统攻防技术>实验四实验报告 1.实践内容 1.1 恶意代码基础知识 定义:指的是使计算机按照攻击者的意图执行以达到恶意目标的指令集. 恶 ...

  8. 《信号与系统》 实验四 系统响应的仿真

    系统响应的仿真 参考 第一大题 内容 题(1)画出系统零.极点分布图,判断该系统稳定性 参考方法 residue()-部分分式展开式求解函数 roots()-多项式求根函数 pzmap(sys) im ...

  9. php实现汉明码,实验四 汉明码系统

    <实验四 汉明码系统>由会员分享,可在线阅读,更多相关<实验四 汉明码系统(11页珍藏版)>请在人人文库网上搜索. 1.实验四 汉明码系统 一. 实验原理和电路说明这些多差错控 ...

最新文章

  1. iar定义arm版本_IAR Systems发布 IAR Embedded Workbench for ARM新版本
  2. 数据结构:最大子序列和
  3. c/c++对象模型大总结:第5-8章、数据成员的存取与布局
  4. Hadoop之OutputFormat数据输出详解
  5. LeetCode - Easy - 118. Pascal‘s Triangle
  6. 计算机表示法是知识 表示法么,计算机三级考试关于IP地址知识点
  7. uri uri_什么是URI? 了解许可证术语以确保合规
  8. 人到中年,别再挥霍你的“同情心”了
  9. 数据异常值分析和处理
  10. java 取色器_Arava: 用 swing 写一个取色器
  11. 小米便签源码分析——UI包
  12. 如何清理浏览器缓存快捷键
  13. 2008新版眼保健操图解
  14. 关于Win10系统-svchost大量占用网速及自动更新问题——完美解决
  15. CM3学习笔记(一)存储器系统
  16. Windows 10企业批量部署实战之WDS配置
  17. 第一次在GitHub上提交代码
  18. 什么是保健品?保健品引流产品什么样的最好?
  19. 动手| 一个人脸识别的K8s部署实践
  20. ....他乡遇故知....

热门文章

  1. 英伟达gt和gtx的区别
  2. NXOPEN/UG二次开发C#---导入igs文件,获得导入的TaggedObject
  3. loam中imu消除重力加速度的数学推导
  4. B250M主板上什么CPU
  5. 初识洋葱模型,分析中间件执行过程,浅析koa中间件源码
  6. Bypassing PatchGuard on Windows x64
  7. Android 简单实现三级列表
  8. 几种常见的通信系统抗衰落技术
  9. settings.xml详解
  10. 反恐精英ol永恒python图_反恐精英python编程