您的位置:首页 > 其它

hdu 1241 Oil Deposits

2015-03-24 23:50 309 查看
该题就是一个模拟题,标记,上下左右和对角线,即可 累加】

#include<stdio.h>
char a[105][105];
int m,n;
void sou(int i,int j)
{
if(a[i][j]=='*')
return;
else if(a[i][j]=='@')
{
a[i][j]='*';
if(i-1>=0) sou(i-1,j);
if(i-1>=0&&j+1<n) sou(i-1,j+1);
if(j+1<n) sou(i,j+1);
if(i+1<m&&j+1<n) sou(i+1,j+1);
if(i+1<m) sou(i+1,j);
if(i+1<m&&j-1>=0) sou(i+1,j-1);
if(j-1>=0) sou(i,j-1);
if(i-1>=0&&j-1>=0) sou(i-1,j-1);
}
}
int main()
{
int i,sum,j;
while(scanf("%d%d",&m,&n)!=EOF)
{
if(m==0&&n==0) break;
sum=0;
for(i=0;i<m;i++)
scanf("%s",a[i]);

for(i=0;i<m;i++)
for(j=0;j<n;j++)
{
if(a[i][j]=='@')
{sou(i,j);
sum++;
}

}
printf("%d\n",sum);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: