杭电oj red and black(简单的深搜)
来源:互联网 发布:mysql distinct 用法 编辑:程序博客网 时间:2024/06/11 21:16
Red and Black
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 12640 Accepted Submission(s): 7801
Write a program to count the number of black tiles which he can reach by repeating the moves described above.
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)
6 9....#......#..............................#@...#.#..#.11 9.#..........#.#######..#.#.....#..#.#.###.#..#.#..@#.#..#.#####.#..#.......#..#########............11 6..#..#..#....#..#..#....#..#..###..#..#..#@...#..#..#....#..#..#..7 7..#.#....#.#..###.###...@...###.###..#.#....#.#..0 0
4559613题意 找到@能经过的“.”的个数。代码:/*时间 2015/7/22 23:09 感受:收获甚大。
*/ #include<stdio.h>
#include<string.h>#include<iostream>#include<algorithm>using namespace std;int dk[25][25];char dp[25][25];int ds[4][2]={{0,-1},{0,1},{-1,0},{1,0}};int W ,H;void dfs(int x,int y)//对数据进行搜索 { int i; for(i=0;i<4;i++) { int dx=x+ds[i][0]; int dy=y+ds[i][1]; if(dx<H&&dx>=0&&dy>=0&&dy<W) { if(!dk[dx][dy]&&dp[dx][dy]=='.') { dk[dx][dy]=1;//把可行数据进行标记。 dfs(dx,dy);//继续搜索 } } }}int main(){ int i,j; while(scanf("%d%d",&W,&H)!=EOF,W&&H) { memset(dk,0,sizeof(dk)); for(i=0;i<H;i++) scanf("%s",dp[i]); int x,y; for(i=0;i<H;i++) for(j=0;j<W;j++) if(dp[i][j]=='@') { x=i,y=j; break; } dk[x][y]=1; dfs(x,y); int ans=0;//对标记数据进行统计。 for(i=0;i<H;i++) for(j=0;j<W;j++) if(dk[i][j]==1) ans++; printf("%d\n",ans); } return 0;}
- 杭电oj red and black(简单的深搜)
- Red and Black(杭电oj1312)
- 杭电 HDU 1312 Red and Black(超级简单dfs)
- 杭电ACM1312——Red and Black~~广搜
- Red and Black(杭电oj1312)(BFS)
- 杭电1312 Red and Black(搜索入门)
- 杭电(hdu)ACM 1312 Red and Black
- 杭电-1312 Red and Black(DFS)
- 杭电 hdu 1312 Red and Black
- 杭电 1312 Red and Black
- 杭电 1312 red and black
- 杭电1312 red and black
- 杭电Red and Black。。。。水题
- 杭电1312 red and black
- hdu 杭电 1312 Red and Black
- 【杭电】[1312]Red and Black
- Red and Black【杭电1312】
- POJ 1979 Red and Black (DFS的简单应用)
- poj1836--Alignment题解
- Codeforces Amr and Chemistry(数学+乱搞)
- linux解压zip中文乱码问题
- javaScript中自定义对象(类的定义方式)
- Java设计模式之基本原则(一)
- 杭电oj red and black(简单的深搜)
- 【IAP支付之一】In-App Purchase Walk Through 整个支付流程
- C# Winform界面中的分隔线问题
- try catch注意事项
- jar包与aar包文件的区别
- java基础之自动装箱和拆箱
- NSSearchPathForDirectoriesInDomains方法使用
- 分布式 ZooKeeper 缓存用法实例教程
- Redis 服务器 单机数据库的实现