30tps求助
查看原帖
30tps求助
1012241
Dcchen楼主2023/11/26 17:50
#include<iostream>
using namespace std;
const int nx[8]={0,0,-1,-1,-1,1,1,1};
const int ny[8]={1,-1,0,1,-1,0,-1,1};
char map[105][105];
int n,m,ans;
void dfs(int x,int y){
	if(x<1||x>n||y<1||y>m||map[x][y]!='W') return;
	map[x][y]='.';
	for(int i=0;i<12;i++) dfs(nx[i]+x,ny[i]+y);
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			cin>>map[i][j];
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			if(map[i][j]=='W')
			ans++;
			dfs(i,j);
		}
	}
	cout<<ans;
}
2023/11/26 17:50
加载中...