博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdoj-1312-Red and Black
阅读量:6832 次
发布时间:2019-06-26

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

Red and Black

Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 12433 Accepted Submission(s): 7726
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
 
45 59 6 13
Source
Recommend
Eddy | We have carefully selected several similar problems for you:
#include
#include
char map[22][22];int dd[22][22];int n,m;void DP(int i,int j,int &res){ if(i<=0||i>n||j<0||j>=m) return ; if(map[i][j]=='#') return; if(dd[i][j]==0&&(map[i][j]=='.'||map[i][j]=='@')) { dd[i][j]=1; res++; DP(i-1,j,res);DP(i+1,j,res); DP(i,j-1,res);DP(i,j+1,res); }}int main(){ while(scanf("%d %d",&m,&n),n||m){ memset(map,0,sizeof(map)); memset(dd,0,sizeof(dd)); int i,j,res,num=0;int tx,ty; for(i=1;i<=n;++i){ scanf("%s",map[i]); } for(i=1;i<=n;++i){ for(j=0;j

转载地址:http://tvtkl.baihongyu.com/

你可能感兴趣的文章
12月14日中国域名商解析量17强:易名增幅最大
查看>>
常见的WebPack文件、什么是WebPack
查看>>
DVD刻录机的使用与维护
查看>>
构建Postfix邮件系统(二) -- SMTP认证发信+SquirrelMail
查看>>
Oracle 使用concat函数需要注意的地方
查看>>
条件测试
查看>>
linux磁盘管理
查看>>
线上部署链路聚合bonding
查看>>
学LIUNX的常用英语补习
查看>>
单点登录CAS解决方案<一>:纯净CAS-Server
查看>>
Mysql 数据库表区分大小写问题
查看>>
什么是openstack的metadata
查看>>
原创:SecureCRT连接linux终端颜色配置
查看>>
java关键字--this
查看>>
SDL_AudioSpec结构体分析
查看>>
Autoconf和Automake,自动生成Makefile
查看>>
观影《寒战》
查看>>
create instance 生成创建虚拟机从nova到调用libvirt流程(pycharm debug):
查看>>
今天的学习
查看>>
我的友情链接
查看>>