这好好的dfs,却……
#include <bits/stdc++.h>
using namespace std;
int m, n;
char c[25][25];
bool P[25][25];
int cnt;
int a, b;
void dfs(int x,int y)
{
if(x <= 0 || y <= 0 || x > n || y > m)
{
return;
}
if(c[x][y] == '#' || P[x][y] == true)
{
return;
}
P[x][y] = true;
cnt++;
dfs(x + 1, y);
dfs(x - 1, y);
dfs(x, y + 1);
dfs(x, y - 1);
}
int main()
{
cin >> m >> n;
for(int i = 1; i <= n; i++)
{
for(int j = 1; j <= m; j++)
{
scanf("%c",&c[i][j]);
if(c[i][j] == '@')
{
a = i;
b = j;
}
}
}
dfs(a, b);
cout << cnt << endl;
return 0;
}