包正经题解
2025-02-13 19:37:58
发布于:浙江
11阅读
0回复
0点赞
#include <bits/stdc++.h>
using namespace std;
int n,m,ans,dx[100]={-1,1,0,0},dy[100]={0,0,-1,1},sx,sy;
bool vis[100][100];
char mp[100][100];
void dfs(int x,int y){
vis[x][y]=1;
for(int i = 0 ;i < 4; i++){
int nx=x+dx[i];
int ny=y+dy[i];
if(nx<1 or nx>m or ny<1 or ny>n or mp[nx][ny]=='#' or vis[nx][ny])continue;
ans++;
dfs(nx,ny);
}
return;
}
int main(){
cin >> n >> m;
for(int i = 1 ; i <= m ; i++)for(int j = 1 ; j <= n ; j++){
cin >> mp[i][j];
if(mp[i][j]=='@'){
sx=i;
sy=j;
}
}
ans++;
dfs(sx,sy);
cout << ans;
return 0;
}
这里空空如也
有帮助,赞一个