样例过了 dfs爆0求助
查看原帖
样例过了 dfs爆0求助
432183
JoeBiden2020楼主2021/10/6 15:06
#include<bits/stdc++.h>
using namespace std;
char a[501][501];
bool vis[501][501];
int ans,m,n;
bool dfs(int x,int y){
	if(x>m||y>n||x<0||y<0||vis[x][y]){
        return false;
    }
    if(a[x][y]=='*'){
        return true;
    }
    else if(a[x][y]=='0'){
    	vis[x][y]=1;
        if(dfs(x+1,y)&&dfs(x-1,y)&&dfs(x,y+1)&&dfs(x,y-1)){
            return true;
        }
        else{
            return false;
        }
        vis[x][y]=0;
    }
}
int main(){
	ios::sync_with_stdio(false);
    cin>>m>>n;
    for(int i=1;i<=m;i++){
        for(int j=1;j<=n;j++){
            cin>>a[i][j];
        }
    }
    for(int i=1;i<=m;i++){
        for(int j=1;j<=n;j++){
            if(dfs(i,j)&&a[i][j]=='0'){
                ans++;
            }
        }
    }
    cout<<ans;
    return 0;
}
2021/10/6 15:06
加载中...