求助,爆0
查看原帖
求助,爆0
219661
⚡zhangjingcan⚡楼主2020/7/31 21:51
#include <bits/stdc++.h>
using namespace std;
const int N = 5e2 + 1;
const int dx[4] = {0, 1, 0, -1};
const int dy[4] = {1, 0, -1, 0};
char a[N][N];
int n, m,ans;
bool flag[N][N];
void dfs(int x,int y){
    flag[x][y]=true;
    for(int i=0;i<4;i++){
        int px=x+dx[i];
        int py=y+dy[i];
        if(px>=1&&px<=n&&py>=1&&py<=m&&a[px][py]!='*'&&!flag[px][py]){
            dfs(px,py);
        }
    }
}
int main() {
    memset(flag,false,sizeof(flag));
    cin>>n>>m;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            cin>>a[i][j];
        }
    }
    dfs(1,1);
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            if(a[i][j]!='*'&&!flag[i][j])ans++;
        }
    }
    cout<<ans<<"\n";
    return 0;
}
2020/7/31 21:51
加载中...