红与黑-dfs
来源:互联网 发布:os x 怎么恢复mac系统 编辑:程序博客网 时间:2024/04/30 00:37
问题 I: 红与黑
时间限制: 1 Sec 内存限制: 32 MB
提交: 19 解决: 15
[提交][状态][讨论版]
题目描述
小明站在一个矩形房间里,这个房间的地面铺满了地砖,每块地砖的颜色或是红色或是黑色。小明一开始站在一块黑色地砖上,并且小明从一块地砖可以向上下左右四个方向移动到其他的地砖上,但是他不能移动到红色地砖上,只能移动到黑色地砖上。
请你编程计算小明可以走到的黑色地砖最多有多少块。
输入
输入包含多组测试数据。
每组输入首先是两个正整数W和H,分别表示地砖的列行数。(1<=W,H<=20)
接下来H行,每行包含W个字符,字符含义如下:
‘.’表示黑地砖;
‘#’表示红地砖;
‘@’表示小明一开始站的位置,此位置是一块黑地砖,并且这个字符在每组输入中仅会出现一个。
当W=0,H=0时,输入结束。
输出
对于每组输入,输出小明可以走到的黑色地砖最多有多少块,包括小明最开始站的那块黑色地砖。
样例输入
6 9
....#.
.....#
......
......
......
......
......
#@...#
.#..#.
11 9
.#.........
.#.#######.
.#.#.....#.
.#.#.###.#.
.#.#..@#.#.
.#.#####.#.
.#.......#.
.#########.
...........
11 6
..#..#..#..
..#..#..#..
..#..#..###
..#..#..#@.
..#..#..#..
..#..#..#..
7 7
..#.#..
..#.#..
###.###
...@...
###.###
..#.#..
..#.#..
0 0
样例输出
45
59
6
13
6 9
....#.
.....#
......
......
......
......
......
#@...#
.#..#.
11 9
.#.........
.#.#######.
.#.#.....#.
.#.#.###.#.
.#.#..@#.#.
.#.#####.#.
.#.......#.
.#########.
...........
11 6
..#..#..#..
..#..#..#..
..#..#..###
..#..#..#@.
..#..#..#..
..#..#..#..
7 7
..#.#..
..#.#..
###.###
...@...
###.###
..#.#..
..#.#..
0 0
样例输出
45
59
6
13
解题思路:就是用深搜吧,所有能到的地方都搜一遍。
下面是代码:
#include <stdio.h>#include <string.h>char a[31][31];int next[4][2]={{0,1},{1,0},{-1,0},{0,-1}},book[31][31];int n,m,count;void dfs(int x, int y)//深搜 模板。 {int k, tx, ty;count++;for(int k=0; k <=3; k++){tx = x+next[k][0];ty = y+next[k][1];if(tx<1 || ty<1 || tx>m || ty >n)continue;if(a[tx][ty]!='#'&&book[tx][ty]==0){book[tx][ty]=1;dfs(tx,ty);}}}int main(){int i, j, x, y;while(~scanf("%d %d", &n, &m))//这道题的m代表行,n代表列 {getchar();//记得吃掉换行,呜呜 memset(book,0,sizeof(book));for(i=1; i<=m; i++){for(j=1; j<=n;j++){scanf("%c", &a[i][j]);if(a[i][j]=='@'){x=i;y=j;}}getchar();//还有这里的换行。。。 }count=0;book[x][y]=1;dfs(x,y);printf("%d\n", count);} }
0 0
- 红与黑-dfs
- POJ1979 红与黑 DFS
- HNCU1103:红与黑(BFS&DFS)
- dfs入门——红与黑
- 红与黑(dfs水题)
- 【基础练习】【DFS】codevs2806 红与黑题解
- 菜鸟DFS的第一次尝试:1103:红与黑
- 红黑瓷砖--dfs求解
- 红与黑
- bfs红与黑
- 递归~红与黑
- 长城汽车红与黑
- 红与黑
- codevs2806红与黑
- 递归--红与黑
- 红与黑
- POJ2816红与黑
- 红与黑
- 程序和进程的区别
- Thinkphp3.23下实现文件下载功能
- POJ
- tensorflow总结帖
- Linux--进程间通信-共享内存-信号量
- 红与黑-dfs
- 去除<span style="white-space:normal;">等字符
- 设计模式之策略模式
- eclipse自动提示设置
- js设置a标签href不跳转 禁止跳转
- Let's Encrypt: 为CentOS/RHEL 7下的nginx安装https支持-具体案例
- 小结下11招转数据库设计
- iOS-Lottie源码解析
- android Studio ddms中emulator control不能用的问题