记录编号 |
597246 |
评测结果 |
AAAAA |
题目名称 |
[POJ2386]Lake Counting |
最终得分 |
100 |
用户昵称 |
djyqjy |
是否通过 |
通过 |
代码语言 |
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;
}