这个题让我们求连通块得数数量,我考虑用flood fill算法。

也就是枚举这个地图每一个点,假如符合要求就bfs与这个点联通的点,并打上标记。结束后接着枚举没有被标记并且符号要求的点。。。

1.==和=千万别写错

2.队列不要忘记head++;

3.tail++一遍就可以了

代码

#include<bits/stdc++.h>
#define maxn 1010
using namespace std;
char mp[maxn][maxn];
int n,m;
struct node{
int x,y;
}q[maxn*maxn];
int ans=;
bool book[maxn][maxn];
void bfs(int sx,int sy){
int head=,tail=;
q[++tail].x=sx;
q[tail].y=sy;
book[sx][sy]=true;
while(head<=tail){
for(int i=q[head].x-;i<=q[head].x+;i++){
for(int j=q[head].y-;j<=q[head].y+;j++){
if(i==q[head].x&&j==q[head].y) continue;
if(i<||i>n||j<||j>m) continue;
if(mp[i][j]=='.'||book[i][j]==true) continue;
if(book[i][j]==false&&mp[i][j]=='W'){
q[++tail].x=i;
q[tail].y=j;
book[i][j]=true;
}
}
}
head++;
}
}
int cnt=;
int main(){
cin>>n>>m;
for(int i=;i<=n;i++){
for(int j=;j<=m;j++){
cin>>mp[i][j];
}
}
for(int i=;i<=n;i++){
for(int j=;j<=m;j++){
if(mp[i][j]=='W'&&book[i][j]==false){
cnt++;
bfs(i,j);
}
}
}
cout<<cnt;
return ;
}

AcWing池塘计数的更多相关文章

  1. AcWing 【算法提高课】笔记02——搜索

    搜索进阶 22.4.14 (PS:还有 字串变换 A*两题 生日蛋糕 回转游戏 没做) 感觉暂时用不上 BFS 1. Flood Fill 在线性时间复杂度内,找到某个点所在的连通块 思路 统计连通块 ...

  2. 带你学习Flood Fill算法与最短路模型

    一.Flood Fill(连通块问题) 0.简介 Flood Fill(洪水覆盖) 可以在线性的时间复杂内,找到某个点所在的连通块! 注:基于宽搜的思想,深搜也可以做但可能会爆栈 flood fill ...

  3. AcWing 230. 排列计数 水题(组合数+错排)打卡

    题目:https://www.acwing.com/problem/content/232/ #include<bits/stdc++.h> #define ll long long #d ...

  4. AcWing 1134. 最短路计数

    给出一个n个顶m 条边的无向无权图,顶点编号为 1 到 n.N. 问从顶点 1开始,到其他每个点的最短路有几条. #include<bits/stdc++.h> #define N 100 ...

  5. BZOJ1632: [Usaco2007 Feb]Lilypad Pond SPFA+最短路计数

    Description 为了让奶牛们娱乐和锻炼,农夫约翰建造了一个美丽的池塘.这个长方形的池子被分成了M行N列个方格(1≤M,N≤30).一些格子是坚固得令人惊讶的莲花,还有一些格子是岩石,其余的只是 ...

  6. P1606 [USACO07FEB]荷叶塘Lilypad Pond(最短路计数)

    P1606 [USACO07FEB]荷叶塘Lilypad Pond 题目描述 FJ has installed a beautiful pond for his cows' aesthetic enj ...

  7. acwing 848 有向图的拓扑序列

    地址 https://www.acwing.com/problem/content/description/850/ 题目描述给定一个n个点m条边的有向图,图中可能存在重边和自环. 请输出任意一个该有 ...

  8. acwing 70-72 剑指OFFER 二叉树相关

    地址 https://www.acwing.com/problem/content/66/ https://www.acwing.com/problem/content/67/ https://www ...

  9. AcWing 24. 机器人的运动范围

    习题地址 https://www.acwing.com/solution/acwing/content/2970/ 题目描述地上有一个 m 行和 n 列的方格,横纵坐标范围分别是 0∼m−1 和 0∼ ...

随机推荐

  1. Jmeter(十)断言

    断言是我们在做自动化测试中常用的一个功能,用于检查测试中响应数据是否符合预期. 使用断言的目的:在request的返回层面增加一层判断机制:因为request成功了,并不代表结果一定正确. 下面我们就 ...

  2. CentOS7 安装MySQL8修改密码

    1. 添加MySQL8的本地源 执行以下命令获取安装MySQL源 [root@virde ~]# wget https://repo.mysql.com//mysql80-community-rele ...

  3. [BJOI2015]树的同构 && 树哈希教程

    题目链接 有根树的哈希 离散数学中对树哈希的描述在这里.大家可以看看. 判断有根树是否同构,可以考虑将有根树编码.而编码过程中,要求保留树形态的特征,同时忽略子树顺序的不同.先来看一看这个方法: 不妨 ...

  4. Luogu P5564 [Celeste-B]Say Goodbye (多项式、FFT、Burnside引理、组合计数)

    题目链接 https://www.luogu.org/problem/P5564 题解 这题最重要的一步是读明白题. 为了方便起见下面设环长可以是\(1\), 最后统计答案时去掉即可. 实际上就相当于 ...

  5. HDU6140--Hybrid Crystals(思维)

    Hybrid Crystals Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)T ...

  6. Tiling_easy version

    Tiling_easy version 思路:关于dp这种东西,有一点必须要想明白,就是状态与状态之间的转换关系,就比如说要求5个骨牌的方案数,因为有两种骨牌,那么可以用dp[3]+两个横着的骨牌或者 ...

  7. 学习 vue 需要了解的内容

    总结 vue 的目录 1. vue 基础 指令 事件 动态的属性 组件 动画 2. vue 组件通信 1. 父传子 props 2. 子传父 ref 3. 插槽 4. 组件的生命周期 3. vue 的 ...

  8. H264编码原理以及I帧、B和P帧详解, H264码流结构分析

    H264码流结构分析 http://blog.csdn.net/chenchong_219/article/details/37990541 1.码流总体结构: h264的功能分为两层,视频编码层(V ...

  9. 2.HDFS和HA

    1.HDFS简介 DataNode NameNode SecondaryNameNode HDFS文件权限 2.HDFS小结 3.HDFS交互操作 4.HDFS编程访问接口

  10. httpClient模仿Basic Auth

    httpclient代码调用如下: @GetMapping("loginTest") public String httpClientWithBasicAuth() { Strin ...