top1编程
← 返回题目
题解

【基础】拯救指挥部

1 条题解

  • 0
    @ 2026-7-29 0:18:13
    #include<bits/stdc++.h>
    using namespace std;
    int n,m,ans=0;
    char ma[1010][1010];
    int dx[]={0,0,1,-1},dy[]={1,-1,0,0};
    void dfs(int x,int y){
    	ma[x][y]='*';
    	for(int i=0;i<4;i++){
    		int xx=x+dx[i];
    		int yy=y+dy[i];
    		if(xx>=0&&xx<=n+1&&yy>=0&&yy<=m+1&&ma[xx][yy]=='0')
    			dfs(xx,yy);
    	}
    }
    int main(){
    	memset(ma,'0',sizeof ma);
    	cin>>n>>m;
    	for(int i=1;i<=n;i++)
    		for(int j=1;j<=m;j++)
    			cin>>ma[i][j];
    	dfs(0,0);
    	for(int i=1;i<=n;i++)
    		for(int j=1;j<=m;j++)
    			if(ma[i][j]=='0')
    				ans++;
    	cout<<ans<<endl;
    	return 0;
    }
    
    • 1