20分,大佬求调
查看原帖
20分,大佬求调
1058985
tarelshy楼主2023/8/15 11:12
#include<bits/stdc++.h>
using namespace std;
string a[1005];
int X[8] = {-1, 1, 0, 0, -1, 1, 1, -1};
int Y[8] = {0, 0, -1, 1, 1, 1, -1, -1};
int ans;
int n, m;
bool yj(int x,int y){
	return 0 <= x && 0 <= y && x < n && y < m;
}
void dfs(int x, int y){
	a[x][y] = '.';
	for (int i = 0;i <= 8;i ++) {
		int dx = x + X[i];
		int dy = y + Y[i];
		if (yj(dx,dy)&&a[dx][dy]=='W')
		{
			dfs(dx, dy);
		}
	}
}
int main()
{
	cin >> n >> m;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
	}
	for(int i = 1;i <= n;i++)
	{
		for(int j = 1;j <= m;j++)
		{
			if(a[i][j] == 'W')
			{
				dfs(i,j);
				ans++;
			}
		}
	}
		
	cout << ans << endl;
	return 0;
}
2023/8/15 11:12
加载中...