HDOJ 1312 Red and Black
来源:互联网 发布:最快的股票行情软件 编辑:程序博客网 时间:2024/06/03 04:08
一个人在@点,他只能走.不能走#,问他在地图上最多能走多少步,
DFS水题,弱爆了的我还是写了很久,太年轻,还是要多联系,
Sample Input
6 9
....#.
.....#
......
......
......
......
......
#@...#
.#..#.
11 9
.#.........
.#.#######.
.#.#.....#.
.#.#.###.#.
.#.#..@#.#.
.#.#####.#.
.#.......#.
.#########.
...........
11 6
..#..#..#..
..#..#..#..
..#..#..###
..#..#..#@.
..#..#..#..
..#..#..#..
7 7
..#.#..
..#.#..
###.###
...@...
###.###
..#.#..
..#.#..
0 0
Sample Output
45
59
6
DFS水题,弱爆了的我还是写了很久,太年轻,还是要多联系,
然后我用BFS写了一次:
也是弱爆了写了40分钟,
第一个 方向数组循环不用4用n,也是够傻的;
第二个:sum++和step++的区别没分开,傻了一样在结构体里面用step;
第三个,傻了半天为什么是sum是0,根本没有调用BFS函数还在到处差错,傻;
DFS水题,弱爆了的我还是写了很久,太年轻,还是要多联系,
Sample Input
6 9
....#.
.....#
......
......
......
......
......
#@...#
.#..#.
11 9
.#.........
.#.#######.
.#.#.....#.
.#.#.###.#.
.#.#..@#.#.
.#.#####.#.
.#.......#.
.#########.
...........
11 6
..#..#..#..
..#..#..#..
..#..#..###
..#..#..#@.
..#..#..#..
..#..#..#..
7 7
..#.#..
..#.#..
###.###
...@...
###.###
..#.#..
..#.#..
0 0
Sample Output
45
59
6
13
#include<stdio.h> //DFS#include<string.h>int sum,n,m;char map[25][25];int use[25][25];int dir[4][2]{-1,0,0,-1,1,0,0,1};void DFS(int x,int y){ int i,dx=x,dy=y; for(i=0;i<4;i++) { dx=x+dir[i][0]; dy=y+dir[i][1]; if(dx>=0&&dx<n&&dy>=0&&dy<m&&map[dx][dy]=='.'&&!use[dx][dy]) { sum++; use[dx][dy]=1; DFS(dx,dy); } } return ;}int main(){ int i,j,k,x1,y1,w; while(scanf("%d%d",&m,&n)!=EOF) { if(m==0&&n==0) break; memset(use,0,sizeof(use)); sum=1; w=0; for(i=0;i<n;i++) scanf("%s",map[i]); for(i=0;i<n;i++) { for(j=0;j<m;j++) { if(map[i][j]=='@') { use[i][j]=1; DFS(i,j); w=1; break; } } if(w==1) break; } printf("%d\n",sum); }return 0;}
DFS水题,弱爆了的我还是写了很久,太年轻,还是要多联系,
然后我用BFS写了一次:
也是弱爆了写了40分钟,
第一个 方向数组循环不用4用n,也是够傻的;
第二个:sum++和step++的区别没分开,傻了一样在结构体里面用step;
第三个,傻了半天为什么是sum是0,根本没有调用BFS函数还在到处差错,傻;
#include<stdio.h> //BFS#include<string.h>#include<queue>using namespace std;#define MAXN 25char map[MAXN][MAXN];int use[MAXN][MAXN];struct node{ int x; int y;}ans;int n,m,sum;int dir[4][2]={-1,0,0,-1,1,0,0,1};queue<node> que;void BFS(){ while(que.size()) { node tem=que.front(); que.pop(); node next; for(int i=0;i<4;i++) { next.x=tem.x+dir[i][0]; next.y=tem.y+dir[i][1]; if(next.x>=0&&next.x<n&&next.y>=0&&next.y<m&&!use[next.x][next.y]&&map[next.x][next.y]=='.') { sum++; use[next.x][next.y]=1; que.push(next); } } }}int main(){ while(scanf("%d%d",&m,&n)!=EOF,n&&m) { memset(use,0,sizeof(use)); sum=1; for(int i=0;i<n;i++) scanf("%s",map[i]); for(int i=0;i<n;i++) for(int j=0;j<m;j++) { if(map[i][j]=='@') { use[i][j]=1; ans.x=i; ans.y=j; que.push(ans); BFS(); } } printf("%d\n",sum); }}
0 0
- hdoj 1312 Red and Black
- HDOJ 1312 Red and Black
- HDOJ 1312 Red and Black
- HDOJ 1312 Red and Black
- hdoj 1312 Red and Black
- 【hdoj 1312】Red and Black
- hdoj-1312-Red and Black
- hdoj 1312 Red and Black
- hdoj 1312 Red and Black
- HDOJ 1312 Red and Black
- hdoj-1312-Red and Black
- HDOJ Red and Black
- HDOJ 1312 Red and Black (DFS)
- HDOJ--1312--Red and Black【DFS】
- ACM HDOJ 1312 (Red and Black)
- hdoj 1312 Red and Black 【BFS】
- HDOJ 1312 Red and Black 基础DFS
- HDoj-1312-Red and Black -BFS
- document.getElementsByTagName
- git库搭建,管理
- 蓝桥杯b组c++.3
- 想要文章被百度快速收录吗?赶紧看过来!
- 大数运算之加法乘法---JAVA实现
- HDOJ 1312 Red and Black
- 周总结4.03
- 定义一些常亮
- msysgit使用说明
- libevent总结(上)
- JAVA-OOM
- 多行文本溢出显示省略号
- Redis安装部署
- Oculus Rift, HTC Vive, SONY PSVR的全面对比