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

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

Problem 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

4559613

分析:

只能够走‘.’,递归到最后,看一共有多少个可以走。

代码:

#include 
#include
using namespace std;int m,n;int Next[4][2]= {
{0,1},{1,0},{0,-1},{-1,0}};int bj[21][21];char a[21][21];int sum=0;void dfs(int x,int y){ int nx,ny; for(int i=0; i<4; i++) { nx=x+Next[i][0]; ny=y+Next[i][1]; if(a[nx][ny]=='.'&&nx>=0&&nx
=0&&ny
>n>>m) { if(m==0||n==0) break; for(i=0; i
>a[i][j]; if(a[i][j]=='@') { x=i; y=j; } } memset(bj,0,sizeof(bj)); sum=1; dfs(x,y); cout<
<

转载于:https://www.cnblogs.com/cmmdc/p/6767987.html

你可能感兴趣的文章
Contest1900 - 2019年6月多校联训a层测试1
查看>>
ibatis缓存初探(1)
查看>>
day23-2 __call__、__str__和__del__
查看>>
java排序算法(一):概述
查看>>
【PHP】 hash加密
查看>>
构建基本脚本
查看>>
C++ 获取当前设备公网IP
查看>>
iOS9 UITableViewCell separatorInset设置为0分割线还是没有顶到头的问题
查看>>
2019 gplt团体程序设计天梯赛总结
查看>>
DevExpress gridview 代码添加按钮
查看>>
Idea其他设置
查看>>
搜索框demo
查看>>
Android中的消息机制:Handler消息传递机制
查看>>
Python使用struct处理二进制(转载)
查看>>
LaTeX 傻瓜式起步
查看>>
hdu3555 数位dp
查看>>
基于vue-cli配置手淘的lib-flexible + rem,实现移动端自适应
查看>>
destoon数据库表说明汇总如下
查看>>
JavaScript编程总结
查看>>
c#项目开发常见问题
查看>>