这篇博客是从旧博客 WordPress 迁移过来,内容可能存在转换异常。
可参照:http://www.wutianqi.com/?p=133
#include
#include
#include
#include
#include
#include
using namespace std;
#define MAX_NUM 21
int W, H;
char aTile[MAX_NUM][MAX_NUM];
int dp(int i, int j);
int cnt = 0;
int main()
{
int i, j;
//freopen("input_2816.txt", "r", stdin);
while(scanf("%d %d", &W;, &H;) == 2 && W != 0 && H != 0)
{
for(i = 0; i < H; i++)
scanf("%s", aTile[i]);
for(i = 0; i < H; i++)
for(j = 0; j < W; j++)
if(aTile[i][j] == '@')
printf("%d\n", dp(i, j));
}
return 0;
}
int dp(int i, int j)
{
if(i<0 || i>=H || j<0 || j>=W)
return 0;
if(aTile[i][j] == '#')
return 0;
else
{
aTile[i][j] = '#';
return 1 + dp(i+1, j) + dp(i-1, j) + dp(i, j+1) + dp(i, j-1);
}
}