哪位好心人帮忙提交一下
查看原帖
哪位好心人帮忙提交一下
778413
zhangyuehan2009楼主2023/7/25 21:54
#include <bits/stdc++.h>

using namespace std;

#define MAXN 105
int m,n,cnt=0;
int book[MAXN][MAXN];
char g[MAXN][MAXN];
void dfs(int x, int y){
	if(book[x][y]||g[x][y]!='@'){
		return;
	}
	book[x][y]=1;
	for(int i = y-1; i<=y+1; i++){
		for(int j = x-1; j<=x+1; j++){
			if(i>0&&i<=n&&j>0&&j<=m&&(i!=y||j!=x)&&g[j][i]=='@'){
				dfs(j,i);
			}
		}
	}
	return;
}
int main(){
	while(cin >> m >> n){
		if(m==0&&n==0){
			break;
		}
		cnt=0;
		memset(g,0,sizeof(g));
		memset(book,0,sizeof(book));
		for(int i = 1; i<=m; i++){
			for(int j = 1; j<=n; j++){
				cin >> g[i][j];
			}
		}
		for(int i = 1; i<=m; i++){
			for(int j = 1; j<=n; j++){
				if(g[i][j]=='@'&&!book[i][j]){
					cnt++;
					dfs(i,j);
				}
			}
		}
		cout << cnt << endl;
	}
	return 0;
}

谢谢

2023/7/25 21:54
加载中...