HDU 1241 Oil Deposits (DFS 八方向)
来源:互联网 发布:小蚁摄像头编程 编辑:程序博客网 时间:2024/05/02 22:21
//杭电1241
//题意自己看,不会度娘
#include <stdio.h>
#include <math.h>#include <string.h>
int n,m,flag[105][105],num;
char cmp[105][105];
int spx[]={0,1,0,-1,1,1,-1,-1};
int spy[]={1,0,-1,0,-1,1,1,-1};//八个方向
bool check(int x,int y)
{
if(x<0||y<0||x>=n||y>=m)
return false;
else
return true;
}//检查是否超出边界
void DFS(int x,int y)
{
if(!check(x,y))//如果超出则返回
return ;
flag[x][y]=1;//未超出则设为1后往下走
for(int i=0;i<8;++i)
{
int nx=x+spx[i];
int ny=y+spy[i];//八个方向
if(cmp[nx][ny]=='@'&&flag[nx][ny]==0)//八个方向里有油井则继续向下搜索
DFS(nx,ny);
}
}
int main(int argc, char *argv[])
{
while(scanf("%d %d",&n,&m)!=EOF)
{
if(n==0&&m==0)
break;
for(int i=0;i<n;++i)
scanf("%s",cmp[i]);
num=0;
memset(flag,0,sizeof(flag));
for(int i=0;i<n;++i)
{
for(int j=0;j<m;++j)
{
if(!flag[i][j]&&cmp[i][j]=='@')//如果是油井且没走过
{
num++;//油井数量加一
DFS(i,j);//开始搜这个油井
}
}
}
printf("%d\n",num);
}
return 0;
}
//题目链接http://acm.hdu.edu.cn/showproblem.php?pid=1241
//Start-ZJ
阅读全文
0 0
- HDU 1241 Oil Deposits (DFS 八方向)
- hdu 1241 Oil Deposits(八方向简单深搜,对新手挺经典)
- hdu 1241 Oil Deposits (dfs)
- HDU-1241 Oil Deposits (DFS)
- HDU 1241 Oil Deposits (DFS)
- 【DFS】hdu:1241 Oil Deposits
- hdu 1241dfs Oil Deposits
- hdu 1241 Oil Deposits(DFS)
- HDU--1241:Oil Deposits (DFS)
- HDU 1241 Oil Deposits 【DFS】
- HDU 1241 Oil Deposits(dfs)
- HDU 1241 -- Oil Deposits (dfs)
- HDU 1241--Oil Deposits【DFS】
- HDU 1241 Oil Deposits(DFS)
- [dfs]HDU 1241 Oil Deposits
- HDU 1241 Oil Deposits DFS
- DFS-HDU-1241-Oil Deposits
- hdu 1241 Oil Deposits(dfs)
- 【Gradle Build Tool 4.1用户指南】Chapter 4. Using the Gradle Command-Line 第4章 使用Gradle命令行
- DataTable中去除空格
- 稳定排序与不稳定排序
- 2017_9_20 生活记录
- viewdidload的调用时机
- HDU 1241 Oil Deposits (DFS 八方向)
- synchronized方法
- sql优化原则
- spring cron表达式
- MacOS安装Maven
- View事件分发机制全解析
- java语言高级特性(一)多线程创建、交互
- Git 命令行操作
- 记录我杭州Android面试的经历(转)