寒假前刷题(9)搜索系列 bfs hdu 1312
来源:互联网 发布:淘宝有哪些官方手办店 编辑:程序博客网 时间:2024/05/18 20:51
Red and Black
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 4527 Accepted Submission(s): 29456 9....#......#..............................#@...#.#..#.11 9.#..........#.#######..#.#.....#..#.#.###.#..#.#..@#.#..#.#####.#..#.......#..#########............11 6..#..#..#....#..#..#....#..#..###..#..#..#@...#..#..#....#..#..#..7 7..#.#....#.#..###.###...@...###.###..#.#....#.#..0 0Sample Output4559613这是一道bfs的搜索题,只要按照4个方向来搜索即可。下面是代码:#include<stdio.h>
#include<stdlib.h>
#include<iostream>using namespace std;
char str[30][30];
int flag[30][30];
int count;
int w,h;
int dir[4][2]={1,0,0,-1,-1,0,0,1}; //遍历数组void bfs(int x,int y)
{
int i;
int ex,ey;
for(i=0;i<4;i++)
{
ex=x+dir[i][0];
ey=y+dir[i][1];
if(ex<0||ex>=h||ey<0||ey>=w)
continue; //记住不是break,也不是return,这里如果越界了,就返回到下一次循环
if(flag[ex][ey]==0)
{
flag[ex][ey]=1;
count++;
bfs(ex,ey);
}
}
}int main()
{
int i,l;
int sx,sy;
while(scanf("%d%d",&w,&h)!=-1)
{
if(w==0&&h==0)
break;
for(i=0;i<h;i++)
{
scanf("%s",str[i]);
for(l=0;str[i][l];l++)
{
if(str[i][l]=='@')
{
sx=i;
sy=l;
flag[i][l]=1;
}
if(str[i][l]=='.')
flag[i][l]=0;
else
flag[i][l]=1;
}
}
count=1;
bfs(sx,sy);
printf("%d\n",count);
}
return 0;
}
- 寒假前刷题(9)搜索系列 bfs hdu 1312
- 寒假前刷题(5)搜索系列 bfs poj 1426
- 寒假前刷题(7)搜索系列 dfs hdu 1010
- 寒假前刷题(8)搜索系列 dfs hdu 1241
- 寒假前刷题(10)搜索系列 hdu 1242
- 寒假前刷题(3)kmp系列 hdu 2203
- 寒假前刷题(4)kmp系列 hdu 2087
- 广度搜索BFS hdu-1312
- HDU-4460(bfs搜索)
- 迷宫系列(二)搜索、BFS、DFS
- HDU 1312 广度优先搜索(BFS)
- hdu 1312 BFS DFS搜索入门
- HDU 1175(搜索题,BFS)
- HDU 2102(搜索题,BFS)
- HDU 1180(搜索题,BFS)
- HDU 2612(搜索题,BFS)
- ()HDU 1548 BFS 广度优先搜索
- hdu 1401 双向搜索(bfs)
- 防止JAVA代码被反编译的方法
- Linux 嵌入式驱动开发 -- 环境搭建及模块编程初步
- c++ 读取某个文件夹下的所有文件
- 在ubuntu 12.04 下搭建mini2440开发环境
- 查看论文
- 寒假前刷题(9)搜索系列 bfs hdu 1312
- PC-lint安装与集成(检查Unix环境代码)(一)
- 【NPC】18、团问题规约到子图同构问题
- Ubuntu下mini2440的系统烧写
- 解决Android项目中的 import android.opengl.Object3D; 的错误
- list 去重复项
- Spring_008_AOP_XML
- 毕业项目小结
- 模板方法模式深度解析(二)
原创粉丝点击热门IT博客