这个题让我们求连通块得数数量,我考虑用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. eclipse打开项目中文件时左侧project explorer同时展开该文件的路径

    如图,点击Package Explorer面板上的双向箭头图标即可

  2. 记使用vim常用的快捷键

    显示行数  :set nu 跳转到最后一行 G 跳转到指定行数 nG  n为行数 跳转到行首 0 跳转到行尾 $ (shift+4)

  3. css基础(css书写 背景设置 标签分类 css特性)

      css书写位置   行内式写法 <p style="color:red;" font-size:12px;></p> 外联式写法 <link re ...

  4. 访问zabbix首页无法正常登陆

    访问: http://IP/zabbix/ (1) You should see the first screen of the frontend installation wizard. (2) 检 ...

  5. badboy——jmeter录制工具

    web网站录制工具 输入网址:红点点被选中代表在录制,然后点点点: 然后导出: 在从JMETER打开:(注意,一定要填cookie)

  6. 同样的WiFi,手机能连上网,电脑不能。错误代码DNS_PROBE_POSSIBLE

    今天电脑不知打为撒,出了这样个毛病,原因不明.先试着用电脑管家修复,无效.找了网上的很多办法,排除了dns.ip之类的问题.最后在贴吧里看到大神的解决办法,实测简单有效.链接http://tieba. ...

  7. anaconda环境管理

    创建新环境 conda create -n rcnn python=3.6 删除环境 conda remove -n rcnn --all 重命名环境 参考SO:https://stackoverfl ...

  8. Python 之目录处理

    目录处理 OS目录处理目录-->路径,文件夹 文件:txt 1. 新建和删除一个目录 import os #引入os目录from xx import xx os.mkdir("D:\\ ...

  9. LeetCode 86. 分隔链表(Partition List)

    题目描述 给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前. 你应当保留两个分区中每个节点的初始相对位置. 示例: 输入: head = 1-> ...

  10. ActiveXObject常用方法

    function getusername() { var WshNetwork = new ActiveXObject("WScript.Network"); alert(&quo ...