#include <bits/stdc++.h>
using namespace std;
int n,m,sx,sy,fx,fy,d,jo;
char mg[501][501];
bool bfr[501][501];
#define check(x,y) (x>=1&&y>=1&&x<=n&&y<=m)
void dt(int x,int y){
bfr[x][y]=1;
if(xfx&&yfy) return;
if(x<n&&(mg[x+1][y]!=''&&!bfr[x+1][y])) {if(check(x+1,y)) d++;dt(x+1,y);}
if(y<m&&(mg[x][y+1]!=''&&!bfr[x][y+1])) {if(check(x,y+1)) d++;dt(x,y+1);}
if(y>1&&(mg[x][y-1]!=''&&!bfr[x][y-1])) {if(check(x,y-1)) d++;dt(x,y-1);}
if(x>1&&(mg[x-1][y]!=''&&!bfr[x-1][y])) {if(check(x-1,y)) d++;dt(x-1,y);}
}
int main()
{
cin>>n>>m;
for(int i=1;i<=n;++i) for(int j=1;j<=m;j){
cin>>mg[i][j];
if(mg[i][j]=='') jo;
}
for(int i=0;i<=n+1;++i) dt(i,0);
for(int i=1;i<=m+1;++i) dt(0,i);
for(int i=1;i<=m+1;++i) dt(n+1,i);
for(int i=1;i<=n;++i) dt(i,m+1);
cout<<nm-jo-d;
return 0;
}
问:用这个代码有什么好的
答:dfs攒功德,表达了作者的思乡之情