您的位置:首页 > 其它

hdu 1312 Red and Black

2013-05-09 18:37 375 查看
#include<stdio.h>
int w,h,ans;
char a[30][30];
int d[4][2]={{0,-1},{0,1},{1,0},{-1,0}};
int dfs(int i,int j)
{
int ii,jj;
for(int k=0;k<4;k++)
{
ii=i+d[k][0];
jj=j+d[k][1];
if(ii<h&&jj<w&&ii>=0&&jj>=0&&a[ii][jj]=='.')
{
ans++;
a[ii][jj]='#';
dfs(ii,jj);
}
}
return 0;
}
int main()
{
int x,y;
while(scanf("%d %d",&w,&h)!=EOF&&w!=0&&h!=0)
{
getchar();
for(int i=0;i<h;i++)
{
for(int j=0;j<w;j++)
{
scanf("%c",&a[i][j]);
if(a[i][j]=='@')
{
x=i;
y=j;
}
}
getchar();
}
ans=0;
a[x][y]='#';
dfs(x,y);
printf("%d\n",ans+1);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: