深爱着 bfs 的我在被抛弃之后决定勾引向 dfs 求爱,然而——
这真的是很简单很简单的一道题求求看一下吧呜呜喵。。
#include<iostream>
using namespace std;
const int dx[4]={1,0,-1,0},dy[4]={0,1,0,-1};
int x,y,ans;
char map[510][510];
void dfs(int xx,int yy)
{
if(xx<0||yy<0||xx>x+1||yy>y+1||map[xx][yy]=='*') return;
map[xx][yy]=1;
for(int i=0;i<4;i++) dfs(xx+dx[i],yy+dy[i]);
}
int main()
{
cin >> x >> y;
for(int i=1;i<=x;i++){
for(int j=1;j<=y;j++) cin >> map[i][j];
}
dfs(0,0);
for(int i=1;i<=x;i++){
for(int j=1;j<=y;j++){
if(!map[i][j]) ans++;
}
}
cout << ans;
return 0;
}
当我打开题解,发现题解第二篇和我很像,唯一区别就是 tj 把地图处理成了数字地图。。在借鉴了 tj 后我发现神奇的过了,但是为什么呢?(而且没改之前还是 TLE 而不是 WA,蒟蒻十分不理解
(btd 致歉喵。