codevs 2806 红与黑
codevs 2806 红与黑
2806 红与黑
有一个矩形房间,覆盖正方形瓷砖。每块瓷砖涂成了红色或黑色。一名男子站在黑色的瓷砖上,由此出发,可以移到四个相邻瓷砖之一,但他不能移动到红砖上,只能移动到黑砖上。编写一个程序,计算他通过重复上述移动所能经过的黑砖数。
输入包含多个数据集。一个数据集开头行包含两个正整数W和H,W和H分别表示矩形房间的列数和行数,且都不超过20.
每个数据集有H行,其中每行包含W个字符。每个字符的含义如下所示:
'.'——黑砖
'#'——红砖
'@'——男子(每个数据集仅出现一次)
两个0表示输入结束。
对每个数据集,程序应该输出一行,包含男子从初始瓷砖出发可到达的瓷砖数。
6 9
....#.
.....#
......
......
......
......
......
#@...#
.#..#.
11 9
.#.........
.#.#######.
.#.#.....#.
.#.#.###.#.
.#.#..@#.#.
.#.#####.#.
.#.......#.
.#########.
...........
11 6
..#..#..#..
..#..#..#..
..#..#..###
..#..#..#@.
..#..#..#..
..#..#..#..
7 7
..#.#..
..#.#..
###.###
...@...
###.###
..#.#..
..#.#..
0 0
45
59
6
13
思路:
一道简单的搜索题,类似走迷宫,但更简单,
首先找到起点(男子站的位置),然后直接搜。
#include<cstdio>
#include<cstring>
using namespace std;
bool a[22][22];
char b[22][22],c[22];
int w,h,s;
void dfs(int x,int y)
{if(x<1||x>h||y<1||y>w||b[x][y]=='#')//判断是否越界以及是否是墙return ;else{if(a[x][y])//判断是否走过return ;if(b[x][y]=='.'){a[x][y]=1;s+=1;}dfs(x,y+1);//向上dfs(x,y-1);//向下dfs(x-1,y);//向左dfs(x+1,y);//向右}
}
int main()
{int i,j,x,y;while(scanf("%d%d",&w,&h)){s=1;//起点处的砖也是红色memset(a,0,sizeof(a));if(w==0&&h==0)return 0;for(i=1;i<=h;i++){scanf("%s",&c);//直接输入的话会输不全for(j=1;j<=w;j++){b[i][j]=c[j-1];if(b[i][j]=='@')//找起点{x=i;y=j;}}}dfs(x,y);//开始找printf("%d\n",s);}
}
codevs 2806 红与黑相关推荐
- [ CodeVS冲杯之路 ] P1116
不充钱,你怎么AC? 题目:http://codevs.cn/problem/1116/ 数据很小,DFS可A,每层枚举颜色,判断相邻的点是否有重复的颜色,记得回溯时把颜色染回0,即无颜色 这里我使用 ...
- 【贪心】【codevs】1214 线段覆盖
http://codevs.cn/problem/1214/ 我去这个题...wa的我都没脾气了... 我写while(~scanf("%d", &n))竟然是不对的... ...
- [codevs 1913] 数字梯形问题
[codevs 1913] 数字梯形问题 题解: 本题就是加强版的 [codevs 1033] 蚯蚓的游戏问题. 分别针对三个规则建图.运行最小费用最大流. 规则1:从梯形的顶至底的m条路径互不相交. ...
- codevs 1002 搭桥
codevs 第一道题 先贴描述 1002 搭桥 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 查看运行结果 题目描述 Description 有一矩 ...
- bzoj 1050: [HAOI2006]旅行comf(codevs.cn 1001 舒适的路线) 快排+并查集乱搞
没用的话:好像很久没发博客了,主要是懒太蒟找不到水题.我绝对没弃坑...^_^ 还用些话:本文为博主原创文章,若转载请注明原网址和作者. 进入正题: 先pa网址: bzoj :http://www.l ...
- codevs 1531 山峰
codevs 1531 山峰 题目描述 Description Rocky山脉有n个山峰,一字排开,从西向东依次编号为1, 2, 3, --, n.每个山峰的高度都是不一样的.编号为i的山峰高度为hi ...
- 习题:codevs 2822 爱在心中 解题报告
这次的解题报告是有关tarjan算法的一道思维量比较大的题目(真的是原创文章,希望管理员不要再把文章移出首页). 这道题蒟蒻以前做过,但是今天由于要复习tarjan算法,于是就看到codevs分类强联 ...
- codevs 1376 帕秋莉•诺蕾姬
codevs 1376 帕秋莉•诺蕾姬 题目描述 Description 在幻想乡,帕秋莉•诺蕾姬是以宅在图书馆闻名的魔法使.这一天帕秋莉又在考虑如何加 强魔法咒语的威力.帕秋莉的魔法咒语是一个仅有大 ...
- [ CodeVS冲杯之路 ] P1044
不充钱,你怎么AC? 题目:http://codevs.cn/problem/1044/ 机房连续断网,搞得现在才能上博客-- 很经典的DP题,把问题转换一下就是分别求最不降序列和最长上升序列 f[i ...
最新文章
- JVM调优:打印所有-XX非标参数命令
- parzen窗估计如何进行结果分析_实现一下模式识别(一)Parzen窗估计
- PHP跳转方法:Header() + location.href
- pywin32 获取窗口句柄_Excel VBA | 这个窗口居然关不掉
- 2019 fall CS224w:01-intro
- centos安装后连不上网
- pytdx 获取板块指数_怎么查看各行业板块指数?
- 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_5-9.使用JWT生成用户Token回写客户端...
- python写病毒代码_十行 Python 代码写一个USB病毒
- 唯一标识 微信小程序_微信小程序中用户唯一ID的获取
- HTTP 401和403区别
- Apache ab 测试使用指南
- 【TF2】Eager Execution机制
- 微服务流量卫兵 Sentinel
- TTW WYSIWYG Editors
- CBOW与Skip-Gram
- Android Content开头的Uri和文件绝对路径互相转换
- 俄勒冈大学计算机科学专业,俄勒冈大学计算机与信息科学详解 热门专业不容错过...
- 远程命令执行漏洞与远程代码执行漏洞33333
- liunx下如何使用unzip 如何压缩文件