不是,这错哪了?样例输出5
查看原帖
不是,这错哪了?样例输出5
1252442
lucy2012楼主2024/6/9 15:08
#include<bits/stdc++.h>
using namespace std;
const int maxn=110;
int m,n;
char field[maxn][maxn];
int color[maxn][maxn],cnt;
int dx[4]={1,-1,0,0},dy[4]={0,0,1,-1}; 
void fill(int x,int y){
	color[x][y]=cnt;
	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(color[xx][yy]==0&&field[xx][yy]>='1'&&field[xx][yy]<='9')
			    fill(xx,yy);
		}
	}
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=m;i++){
		for(int j=1;j<=n;j++)
		    cin>>field[i][j];
	}
	for(int i=1;i<=m;i++){
		for(int j=1;j<=n;j++){
			if(field[i][j]>='1'&&field[i][j]<='9'&&color[i][j]==0){
				cnt++;
				fill(i,j);
			}
		}
	}
	cout<<cnt;
	return 0;
}
2024/6/9 15:08
加载中...