您的位置:首页 > 其它

hdu 1241 Oil Deposits(DFS)

2016-05-12 18:32 357 查看
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1241

明显的深搜题目

#include <stdio.h>

int m,n;
char map[101][101];
//                 右    右下   下    左下   左    左上     上    右上
int next[8][2] = {{0,1},{1,1},{1,0},{1,-1},{0,-1},{-1,-1},{-1,0},{-1,1}};//方向

void DFS(int x, int y)
{
int k;
int tx,ty;
map[x][y] = '*';//将当前坐标标记
for(k = 0; k < 8; ++k)
{
tx = x + next[k][0];
ty = y + next[k][1];
if(tx <1 || ty < 1 || tx > m || ty > n)//判断边界
continue;
if(map[tx][ty] == '@')//判断当前点是否是油田
DFS(tx,ty);//深搜
}
return ;
}

int main()
{
int i,j,time;
while(scanf("%d %d",&m,&n) && (m+n) != 0)
{
time = 0;
for(i = 1; i <= m; ++i)
for(j = 1; j <= n; ++j)//输入地图
scanf(" %c",&map[i][j]);
for(i = 1; i <= m; ++i)
for(j = 1; j <= n; ++j)
if(map[i][j] != '*')
{
++time;
DFS(i,j);
}
printf("%d\n",time);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: