过样例,全RE!(求助)
查看原帖
过样例,全RE!(求助)
746240
linmoxi楼主2023/9/2 21:38
#include<iostream>
#include<string>
#include<cmath>
#include<algorithm> 
#include<stack>
#include<vector>
using namespace std;
int m,n,cct;
char fld[105][105];
int clr[105][105];
int dx[4]={1,-1,0,0},dy[4]={0,0,1,-1};
void bfs(int x,int y){
	clr[x][y]=1;
	for(int k=0;k<4;k++){
		int xx=x+dx[k];
		int yy=y+dy[k];
		if(xx>0&&xx<=m&&yy>0&&yy<=n){
			if(clr[xx][yy]==0&&fld[xx][yy]=='0')bfs(xx,yy);
		}
	}
}
int main(){
	cin>>m>>n;for(int i=1;i<=m;i++){
		for(int j=1;j<=n;j++){
			cin>>fld[i][j];
		}
	}
	for(int i=1;i<=m;i++){
		for(int j=1;j<=n;j++){
			if(i==1||j==1||i==m||j==n){
				if(fld[i][j]=='0'&&clr[i][j]==0)bfs(i,j);
			}
		}
	}
	for(int i=1;i<=m;i++){
		for(int j=1;j<=n;j++){
			if(fld[i][j]=='0'&&clr[i][j]==0)cct++;
		} 
	}
	cout<<cct<<endl;
	return 0;
}
2023/9/2 21:38
加载中...