1312 red and black.cpp
来自「威士忌的HDU题解.大概有260多题的源码。对于学习非常有好处。」· C++ 代码 · 共 49 行
CPP
49 行
#include <cstdio>
#include <string>
using namespace std;
char map[21][21];
int ans,w,h;
void dfs(int x,int y)
{
if(x<0 || x>h || y<0 || y>w)
return;
if(map[x][y]=='.')
{
ans++;
map[x][y]=0;
dfs(x+1,y);
dfs(x-1,y);
dfs(x,y+1);
dfs(x,y-1);
}
else
return;
}
int main()
{
int i,j,n,sx,sy;
while( scanf("%d %d",&w,&h)!=EOF )
{
memset(map,0,sizeof(map));
if(w==0 || h==0)
break;
sx=sy=0;
for(i=0;i<h;i++)
{
scanf("%s",map[i]);
for(j=0;j<w;j++)
{
if(map[i][j]=='@')
{ sx=i;sy=j;break;}
}
}
ans=0;
map[sx][sy]='.';
dfs(sx,sy);
printf("%d\n",ans);
}
return 0;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?