HDU 1312 Red and Black(BFS,DFS)
2014-03-12 23:02
513 查看
题目: http://acm.hdu.edu.cn/showproblem.php?pid=1312
题解:
受不了,这题前天就开始A了,昨天做模拟赛没A,晚上A,深搜做了几次,不对,广搜做了几次,也不对,错误的答案却一样,拼命的找BUG就是不去再审次题,尼玛,惯性思维以为输入是先行再列,数据给的是先列再行,狂汗。
审题审题审题啊
纯DFS或者BFS,直接看代码就懂了应该。
代码:
BFS
DFS
题解:
受不了,这题前天就开始A了,昨天做模拟赛没A,晚上A,深搜做了几次,不对,广搜做了几次,也不对,错误的答案却一样,拼命的找BUG就是不去再审次题,尼玛,惯性思维以为输入是先行再列,数据给的是先列再行,狂汗。
审题审题审题啊
纯DFS或者BFS,直接看代码就懂了应该。
代码:
BFS
#include<iostream> #include<queue> using namespace std; char map[23][23]; int dir[4][2]={1,0,0,-1,-1,0,0,1}; struct P { int x; int y; }o; int main() { int n,m; while(~scanf("%d%d",&m,&n)) { if(n==0&&m==0) break; int i,j; int a,b; for (i=1;i<=n;i++) { for (j=1;j<=m;j++) { cin>>map[i][j]; if (map[i][j]=='@') map[a=i][b=j]='#'; } } queue <P> que; P s={a,b}; que.push(s); int sum=0; while(!que.empty()) { sum++; s=que.front(); que.pop(); int nx,ny; for(i=0;i<4;i++) { nx=dir[i][0]+s.x; ny=dir[i][1]+s.y; if(nx>0&&nx<=n&&ny>0&&ny<=m&&map[nx][ny]=='.') { map[nx][ny]='#'; P v={nx,ny}; que.push(v); } } } printf("%d\n",sum); } return 0; }
DFS
#include<iostream> using namespace std; char map[23][23]; int dir[4][2]={1,0,0,-1,-1,0,0,1}; int n,m; int sum; void DFS(int x,int y) { map[x][y]='#'; sum++; int i; for(i=0;i<4;i++) { int nx,ny; nx=x+dir[i][0]; ny=y+dir[i][1]; if(nx>0&&nx<=n&&ny>0&&ny<=m&&map[nx][ny]=='.') { DFS(nx,ny); } } return; } int main() { while(~scanf("%d%d",&m,&n)) { if(n==0&&m==0) break; int i,j; int a,b; for (i=1;i<=n;i++) { for (j=1;j<=m;j++) { cin>>map[i][j]; if (map[i][j]=='@') { a=i; b=j; } } } sum=0; DFS(a,b); printf("%d\n",sum); } return 0; }
相关文章推荐
- HDU 1312 Red and Black-dfs&bfs-(分块)
- hdu 1312 Red and Black (dfs+bfs)
- HDU 1312 Red and Black DFS(深度优先搜索) 和 BFS(广度优先搜索)
- HDU 1312 Red and Black 红与黑 搜索 dfs bfs
- HDU1312 Red and Black (DFS || BFS)
- 【HDU 1312 Red and Black】+ DFS + BFS
- HDU 1312 Red and Black(BFS,DFS)
- HDU - 1312 : Red and Black(dfs、bfs)
- HDU 1312Red and Black(简单搜索 bfs或dfs)
- hdu 1312 Red and Black DFS搜索 or BFS搜索
- HDU 1312 Red and Black(基础bfs或者dfs)
- HPU DFS + BFS 专项练习A - Red and Black HDU - 1312
- HDU 1312 Red and Black(经典搜索,DFS&BFS三种方式)
- hdu 1312 Red and Black(BFS水题)
- HDU:1312 Red and Black(dfs)
- HDU 1312 Red and Black(BFS)
- HDU 1312 Red and Black(dfs)
- hdu 1312 Red and Black dfs
- Hdu 1312 Red and black(BFS)
- 路径问题系列之HDU1312 Red and Black(DFS)