#include<iostream> char data[100][100]; int map[100][100]; int h,l; int dx[8]={0,1,1,1,0,-1,-1,-1}; int dy[8]={1,1,0,-1,-1,-1,0,1}; int max=0; typedef struct node { int x; int y; }node; void fun(int x,int y) { int tou=0; int wei=1; map[x][y]=2; node point[100]; point[tou].x=x; point[tou].y=y; while(tou<wei) { for(int i=0;i<8;i++) { int nx=point[tou].x+dx[i]; int ny=point[tou].y+dy[i]; if(nx>=0&&nx<h&&ny>=0&&ny<l&&map[nx][ny]==1) { map[nx][ny]=2; point[wei].x=nx; point[wei].y=ny; wei++; } } tou++; } max++; for(int i=0;i<h;i++) { for(int j=0;j<l;j++) { printf("%d",map[i][j]); } printf("\n"); } } int main() { freopen("input.txt","r",stdin); scanf("%d%d",&h,&l); getchar(); for(int i=0;i<h;i++) { for(int j=0;j<l;j++) { scanf("%c",&data[i][j]); if(data[i][j]==‘ ‘) map[i][j]=1; else{ map[i][j]=0; } } getchar(); } for(int i=0;i<h;i++) { for(int j=0;j<l;j++) { if(map[i][j]==1) fun(i,j); } } printf("%d",max); }
时间: 2024-11-05 05:34:13