博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Red and Black(DFS深搜实现)
阅读量:4625 次
发布时间:2019-06-09

本文共 1910 字,大约阅读时间需要 6 分钟。

Description

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. 
 

Input

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) 
 

Output

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).
 

Sample Input

6 9
....#.
.....#
......
......
......
......
......
#@...#
.#..#.
11 9
.#.........
.#.#######.
.#.#.....#.
.#.#.###.#.
.#.#..@#.#.
.#.#####.#.
.#.......#.
.#########.
...........
11 6
..#..#..#..
..#..#..#..
..#..#..###
..#..#..#@.
..#..#..#..
..#..#..#..
7 7
..#.#..
..#.#..
###.###
...@...
###.###
..#.#..
..#.#..
0 0
 

Sample Output

45 59 6 13
 
 
 
 
深搜实现方案:
1 #include
2 #include
3 #include
4 #include
5 using namespace std; 6 char map[110][110]; 7 int vis[110][100]; 8 int dir[8][2]={
{
0,1},{
0,-1},{
1,0},{-1,0}}; 9 int n,m,num;10 void DFS(int x,int y)11 {12 int a,b,i;13 vis[x][y]=1;14 num++;15 for(i=0;i<8;i++)16 {17 a=x+dir[i][0];18 b=y+dir[i][1];19 if(a>=0&&a
=0&&b

 

 
 
 
 

转载于:https://www.cnblogs.com/wkfvawl/p/8906201.html

你可能感兴趣的文章
Handlebars.js 模板引擎
查看>>
MySQL体系结构
查看>>
Nginx-日志切割
查看>>
219. Insert Node in Sorted Linked List【Naive】
查看>>
CentOS下安装mysql及配置使用
查看>>
Sublime Text3配置Vue 语法
查看>>
验证控件:RegularExpressionValidator
查看>>
hdu1166 线段树单点修改与区间查询
查看>>
asp.net -mvc框架复习(7)-基于MVC搭建用户登录项目框架
查看>>
CSS background-clip 属性
查看>>
python中函数作用域
查看>>
C#版清晰易懂TCP通信原理解析(附demo)
查看>>
系统自带的粒子系统
查看>>
Laravel 框架的主要版本
查看>>
pandas学习笔记 - 常见的数据处理方式
查看>>
云监控中的告警
查看>>
大题的简单解答
查看>>
CSS3复选框动画
查看>>
Base64.java 工具类
查看>>
ExtJS遮罩层Ext.loadMask
查看>>