Lake Counting
程序员文章站
2022-07-14 20:51:27
...
Lake Counting
试题描述 |
有一个大小为M*N的园子,雨后积起了水。八连通的积水被认为是连接在一起的。请求出园子里共有多少水洼?(八连通指的是下面图中相对W的*的部分) |
输入 |
第一行包含两个正整数 N 和 M,表示将一个园子地面分成N*M块方格,N 行,M列,接下来的 N 行描述了园子地面状况,其中‘W’表示积水的水洼,‘.’表示没有积水。 |
输出 |
仅一个数,表示水洼的总数。 |
输入示例 |
10 12 |
输出示例 |
3 |
其实就是八连块。用dfs(即深度搜索)可以解决。
#include <iostream>
#include<string.h>
#include<stdio.h>
using namespace std;
char mp[111][111];
int n,m;
int ans;
void dfs(int x,int y)
{
mp[x][y]='*';
for(int i=-1; i<=1; i++)
for(int j=-1; j<=1; j++)
{
int xt=x+i;
int yt=y+j;
if(xt>=0&&xt<n&&yt>=0&&yt<m&&mp[xt][yt]=='W')
{
dfs(xt,yt);
}
}
return;
}
int main()
{
scanf("%d%d",&n,&m);
if(n==0&&m==0)
return 0;
int ans=0;
for(int j=0; j<n; j++)
scanf("%s",mp[j]);
for(int i=0; i<n; i++)
{
for(int j=0; j<m; j++)
{
if(mp[i][j]=='W')
{
dfs(i,j);
ans++;
}
}
}
printf("%d\n",ans);
return 0;
}
上一篇: eos 编译笔记(注意点)
推荐阅读
-
Kaby Lake-X怎么样?Kaby Lake-X i7-7740X/i5-7640X深度评测
-
8代酷睿Coffee Lake首测 Intel i5 8250U移动CPU处理器性能对比评测
-
Intel即将揭秘第11代核显:10nm Ice Lake年底见
-
Intel Comet Lake家族酷睿i3-10100桌面处理器现身:首次4核8线程
-
Intel:10nm的Ice Lake处理器相比前代有18% IPC提升
-
Intel退役Kaby Lake-G处理器 A/I合体的杰作消失了
-
10代Ice Lake i7单核性能曝光:同频比Skylake提升40%还多
-
性能提升超乎想象!Intel 10nm Ice Lake与锐龙3000系列处理器单核性能曝光
-
Intel Tiger Lake处理器曝光:集成Gen12显卡、性能给力
-
不是九代胜似九代 Intel Whiskey Lake处理器亮点详细介绍