记录编号 597246 评测结果 AAAAA
题目名称 [POJ2386]Lake Counting 最终得分 100
用户昵称 Gravatardjyqjy 是否通过 通过
代码语言 C++ 运行时间 0.016 s
提交时间 2024-11-25 20:34:58 内存使用 3.55 MiB
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
const int N=110;
char mapp[N][N];
int n,m;
bool mark[N][N];
int fx[8][2]={{-1,-1},{-1,0},{-1,1},{0,-1},{0,1},{1,-1},{1,0},{1,1}};
void dfs(int x,int y)
{
	mark[x][y]=1;
	for(int i=0;i<8;i++)
	{
		int xx=x+fx[i][0],yy=y+fx[i][1];
		if(xx>=1&&xx<=n&&yy>=1&&yy<=m&&mark[xx][yy]==0&&mapp[xx][yy]=='W') dfs(xx,yy);
	}
	return;
}
int ans;
int main()
{
	freopen("lakecounting.in","r",stdin);
	freopen("lakecounting.out","w",stdout);
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++)
	    for(int j=1;j<=m;j++)
	        cin>>mapp[i][j];
	for(int i=1;i<=n;i++)
	    for(int j=1;j<=m;j++)
	        if(mark[i][j]==0&&mapp[i][j]=='W') dfs(i,j),ans++;
	printf("%d",ans);
	return 0;
}