hdu1312(DFS入门题)
来源:互联网 发布:怎么删除淘宝空间图片 编辑:程序博客网 时间:2024/06/05 05:25
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<algorithm>
using namespace std;
int w,h,si,sj;
char maze[25][25];
int forward[4][2]={-1,0,0,1,1,0,0,-1};//四个方向搜索
bool mark[25][25]; // 标记数组
int ans ,flag;
void DFS(int x,int y)
{
int nx,ny;
ans++;
for(int i=0; i<4; i++)
{
nx=x+forward[i][0];
ny=y+forward[i][1];
if(nx>=1&&nx<=h&&ny>=1&&ny<=w&&!mark[nx][ny]&&maze[nx][ny]!='#')
{
mark[nx][ny]= 1; //标记为已搜
DFS(nx,ny); //递归调用DFS
}
}
}
int main()
{
while(cin>>w>>h,w||h)
{
memset(mark,0,sizeof(mark));
flag= 0;
for(int i=1; i<=h; i++)
for(int j=1; j<=w; j++)
{
cin>>maze[i][j];
if(maze[i][j]=='@')
{
si=i; //找到开始人站的位置
sj=j; //找到开始人站的位置
mark[i][j]= 1;
}
else if(mark[i][j]=='#')
{
mark[i][j]= 1;
}
}
ans= 0;
DFS(si,sj);
printf("%d\n",ans);
}
return 0;
}
- hdu1312(DFS入门题)
- hdu1312 Red and Black(入门dfs)
- hdu1312 Red and Black(DFS/BFS入门题目)
- HDU1312 dfs
- hdu1312 dfs
- hdu1312 poj1979 Red and Black(DFS)
- hdu1312 Red and Black(DFS)
- hdu1312——深度搜索(dfs)
- HDU1312 Red and Black(DFS)
- HDU1312 Red and Black(DFS)
- HDU1312 Red and Black(DFS水)
- HDU1312 Red and Black(DFS)
- hdu1312 Red and Black(DFS深搜,入门题目)
- 【搜索入门专题练习1】hdu1241+hdu1312 C+D【DFS】
- 路径问题系列之HDU1312 Red and Black(DFS)
- 搜索入门-----HDU1312
- HDU1312:Red and Black(DFS)
- hdu1312(DFS Red and Black )
- 写给2013年的自己!!
- C++将结构体传给lua .
- centos更换软件源
- 栈的学习: 实现括号匹配功能
- java.util.concurrent介绍
- hdu1312(DFS入门题)
- Ext.each 中途跳出得方法
- JavaSE第八十六讲:Java IO详解
- 八年级作文-第N次大战
- 网络编程1 - socket基本函数
- PKU 1185 炮兵阵地 经典状态压缩dp
- 【2013.1.16】真相永远只有一个——Singleton
- 合并相似算法
- MySQL 数据类型