@[liuxinghuakong](/user/284825) 修改后代码如下:
``` cpp
#include<iostream>
using namespace std;
int n,m,x,y,ans;
int a[35][35];
char arr[35][35];
int dx[]={1,1,-1,-1,0,1,-1,0};
int dy[]={1,-1,-1,1,1,0,0,-1};
void dfs(int i,int j)
{
a[i][j]=1;
for(int d=0;d<8;d++)
{
int xx=i+dx[d];//dx[i] -> dx[d]
int yy=j+dy[d];//dy[i] -> dy[d]
if(xx>0&&xx<=n&&yy>0&&yy<=m&&a[xx][yy]==0&&arr[xx][yy]=='X')//a -> arr
dfs(xx,yy);//添加 yy<=m 的条件
if(d>3&&(xx<=0||xx>n||yy<=0||yy>m||arr[xx][yy]!='X'))//a ->arr
ans++;
}
}
int main()
{
cin>>n>>m>>x>>y;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>arr[i][j];
dfs(x,y);
cout<<ans;
return 0;
}
```
by wsyhb @ 2020-12-17 20:05:47