A - Red and Black(3.2.1)(小递归)
Description
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.
Input
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.
Output
Sample Input
6 9
....#.
.....#
......
......
......
......
......
#@...#
.#..#.
11 9
.#.........
.#.#######.
.#.#.....#.
.#.#.###.#.
.#.#..@#.#.
.#.#####.#.
.#.......#.
.#########.
...........
11 6
..#..#..#..
..#..#..#..
..#..#..###
..#..#..#@.
..#..#..#..
..#..#..#..
7 7
..#.#..
..#.#..
###.###
...@...
###.###
..#.#..
..#.#..
0 0
Sample Output
45
59
6
13 思路:使用递归,对@所在的位置四个方向查找,一直到不满足条件h>=n||l>=m||h<0||l<0||str[h][l]=='#'||boo[h][l]==1为止。。。 #include <iostream>
#include <string>
#include<algorithm> //头文件
using namespace std;
bool boo[25][25];
string str[21];
int jishu=0;
int m,n,h=0,l=0;//h为行,l为列
void search(int h,int l)
{
if(h>=n||l>=m||h<0||l<0||str[h][l]=='#'||boo[h][l]==1) //此处如果没有||boo[h][l]==1就会死循环,但是却不显示一直进行,而是程序莫名其妙的结束,以后注意!!!!!!!!!!!!!!
return ;
boo[h][l]=1;
jishu++; search(h,l-1);
search(h,l+1);
search(h-1,l);
search(h+1,l);
}
int main()
{
int i,j;
cin>>m>>n;//m是一个字符串的长度 n是字符串数目
while(m!=0&&n!=0)
{ jishu=0;
h=0,l=0;
for(i=0;i<n;i++)
{
cin>>str[i];
for(j=0;j<m;j++)
if(str[i][j]=='@')
{
h=i;
l=j;
}
}
memset(boo,0,25*25);
search(h,l);
cout<<jishu<<endl;
cin>>m>>n;
}
return 0;
}
A - Red and Black(3.2.1)(小递归)的更多相关文章
- html5小游戏基础知识
		
显示一个DIV和隐藏一个DIV 首先,我们要显示一个DIV和隐藏一个DIV需要使用css里面使用: .hide{ display:none;} .show{display:block;} 在需要显示或 ...
 - 微信小程序视频学习笔记
		
[清华大学]学做小程序 https://www.bilibili.com/video/av21987398 2.2创建项目和文件结构 小程序包含一个描述整体程序的app和多个描述各自页面的page 配 ...
 - leetcode bugfree note
		
463. Island Perimeterhttps://leetcode.com/problems/island-perimeter/就是逐一遍历所有的cell,用分离的cell总的的边数减去重叠的 ...
 - KVM 介绍(1):简介及安装
		
学习 KVM 的系列文章: (1)介绍和安装 (2)CPU 和 内存虚拟化 (3)I/O QEMU 全虚拟化和准虚拟化(Para-virtulizaiton) (4)I/O PCI/PCIe设备直接分 ...
 - C# 绘制统计图(柱状图, 折线图, 扇形图)【转载】
		
统计图形种类繁多, 有柱状图, 折线图, 扇形图等等, 而统计图形的绘制方法也有很多, 有Flash制作的统计图形, 有水晶报表生成统计图形, 有专门制图软件制作, 也有编程语言自己制作的:这里我们用 ...
 - leach协议matlab仿真代码
		
http://www.ilovematlab.cn/thread-177006-1-1.html LEACH協議clear;%清除內存變量 xm=100;%x軸範圍ym=100;%y軸範圍 sink. ...
 - Asp.net 用 Graphics 统计图(柱状图, 折线图, 扇形图)
		
统计图形种类繁多, 有柱状图, 折线图, 扇形图等等, 而统计图形的绘制方法也有很多, 有Flash制作的统计图形, 有水晶报表生成统计图形, 有专门制图软件制作, 也有编程语言自己制作的:这里我们用 ...
 - HTML 基础 2
		
1. 认识CSS样式: CSS:层叠样式表(Cascading Style Sheets),主要用于定义HTML内容在浏览器内的显示样式 语法: 选择符{ 属性: 值} 举例: p{ color: b ...
 - 【CSS3】布局
		
浮动布局: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <tit ...
 
随机推荐
- python数据类型之 set
			
set是一个无序且不重复的元素集合 class set(object): """ set() -> new empty set object set(iterabl ...
 - Storm0.9.4安装 - OPEN 开发经验库
			
Storm0.9.4安装 - OPEN 开发经验库 bin/zkServer.sh start /home/guym/down/kafka_2.8.0-0.8.0/config/zookeeper.p ...
 - mysql导出查询结果到csv方法
			
要将MySQL的查询结果导出为csv,一般会使用php连接mysql执行查询,将返回的查询结果使用php生成csv格式再导出. 但这样比较麻烦,需要服务器安装php才可以实现. 直接使用mysql导出 ...
 - Web版报表的架构和设计思路
			
通常,我们设计一个报表,会面临设计报表,构造数据,展示报表的一个过程 设计报表也许大家都会用过,比如水晶报表,jreport一堆一堆的. 不过我觉得最好用的应该还是office做成的报表,谁都会,而且 ...
 - Myeclipse搭建struts2环境
			
1.下载Struts2 到Apache Struts2官网下载最新的Struts2 http://struts.apache.org/download.cgi#struts2316-SNAPSHOT ...
 - Settings.System.getInt获取Setting里的设置信息
			
数据库的路径:/data/data/com.android.providers.settings. 获取飞行模式: Settings.System.getInt(mContext.getContent ...
 - LintCode "Triangle Count"
			
Should be "Medium" or even "Easy".. Just with a little Greedy. class Solution { ...
 - winserver 2008 r2 iis7.5 实现php wordpress url静态化操作步骤(UrlRewrite实现)
			
参考网址:http://jingyan.baidu.com/article/cbf0e500ebec582eaa2893d2.html 文中涉及到的程序源码以及配置 详见附件:http://files ...
 - Linux下nl命令的用法详解
			
Linux中nl命令和cat命令很像,不过nl命令会打上行号,属于比较不常用的命令,下面随小编一起来了解下这个鲜为人知的nl命令吧. nl命令在linux系统中用来计算文件中行号.nl 可以将输出的文 ...
 - string和stringBuilder区别
			
C# String 对象是不可改变的.每次使用 System.String 类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间.在需要对字符串执行重复修改的情况下,与 ...