HPU DFS + BFS 专项练习A
来源:互联网 发布:质量好的淘宝店推荐 编辑:程序博客网 时间:2024/05/18 10:04
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.
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
题意:有一个M*N的地板,分别有红地板‘#’和黑地板‘.’组成,一个人站在一块黑地板‘@’上并且只能走黑地板,问能走多少块黑地板;
思路:简单DFS:
下面附上模板:
#include<bits/stdc++.h>using namespace std;char mapp[105][105];int vis[25][25];int fx[4]={0,0,-1,1},fy[4]={1,-1,0,0};int W,H;int ans=0;void dfs(int x, int y){ans++;vis[x][y]=1;for(int i=0;i<4;i++){int nx=x+fx[i];int ny=y+fy[i];if(nx>=0 && ny>=0 && nx<H && ny<W && !vis[nx][ny] && mapp[nx][ny]=='.'){//printf("%d %d\n",nx,ny);dfs(nx,ny);}}}int main(){while(~scanf("%d %d",&W,&H),W){int sx,sy;ans=0;int flag=0;memset(vis,0,sizeof(vis));for(int i=0;i<H;i++)scanf("%s",mapp[i]);for(int i=0;i<H;i++){for(int j=0;j<W;j++)if(!vis[i][j]&&mapp[i][j]=='@'){sy=j;sx=i;flag=1;break;}if(flag) break;}//printf("%d %d\n",sx,sy);dfs(sx,sy);printf("%d\n",ans);}return 0;}
阅读全文
0 0
- HPU DFS + BFS 专项练习A
- dfs 及其 bfs 一些练习
- 博弈搜索练习-BFS&DFS
- HPU A
- BFS/DFS引出A*算法
- BFS,DFS,DIJKSTRA算法基础练习
- 【HPU 1191 Graphics 】+ DFS
- hpu练习二
- hpu练习二没看题好像
- hpu练习二
- hdu2102-A计划-dfs剪枝|bfs
- POJ 1724 ROADS bfs || dfs || A*
- 【记录】批处理实现dfs,bfs,双向bfs,A*寻路
- 集训第一天(2017/7/31):深度优先搜索dfs专项练习
- wbs专项练习
- 牛客网(c++专项练习)
- 排序专项练习
- 绕口令 - 专项练习
- 使用MyBatis Generator自动创建代码
- Hadoop MultipleInputs.addInputPath 读取多个路径
- 283. Move Zeroes
- ubuntu下执行apt-get update 报异常
- 栈在表达式计算过程中的应用
- HPU DFS + BFS 专项练习A
- hdu 5685 2016"百度之星"
- poj 2229 动态规划
- linux 安装jdk1.7
- 多线程下的观察者模式--Java实现
- mybatis-generator 代码自动生成工具
- 百练noi 8785:装箱问题
- ZOJ 1364 Machine Schedule (二分图最大匹配)
- 深度学习在视频动作识别应用