当前位置: 首页 > article >正文

AcWing 1097 池塘计数 flood fill bfs搜索

代码

#include <bits/stdc++.h>
using namespace std;

const int N = 1010, M = N * N;

typedef pair<int, int> PII;

int n, m;

char g[N][N];
bool st[N][N];
PII q[M];

void bfs (int xx, int yy)
{
	int hh = 0, tt = -1;
	q[ ++ tt] = {xx, yy};
	st[xx][yy] = true;
	while (hh <= tt)
	{
		int tx = q[hh].first, ty = q[hh].second;
		hh ++;
		for (int i = max(0, tx - 1); i <= min(n - 1, tx + 1); i ++ )
			for (int j = max(0, ty - 1); j <= min(m - 1, ty + 1); j ++ )
			{
				if (!st[i][j] && g[i][j] == 'W')
				{
					st[i][j] = true;
					q[ ++ tt] = {i, j};
				}
			}
	}
}

int main()
{
	scanf("%d%d", &n, &m);
	
	for (int i = 0; i < n; i ++ )
	{
		scanf("%s", g[i]);
	}
	
	int ans = 0;
	
	for (int i = 0; i < n; i ++ )
		for (int j = 0; j < m; j ++ )
			if (g[i][j] == 'W' && !st[i][j])
			{
//				cout << i << " " << j << endl;
				bfs(i, j);
				ans ++;
			}
	
	printf("%d", ans);
	
	return 0;
}


http://www.kler.cn/a/394508.html

相关文章:

  • 【JavaScript】为 setInterval()定义变量,存储ID
  • 4-6-2.C# 数据容器 - ArrayList 扩展(ArrayList 注意事项、ArrayList 存储对象的特性、ArrayList 与数组的转换)
  • Ceph 中PG与PGP的概述
  • llama factory lora 微调 qwen2.5 7B Instruct模型
  • 分享 pdf 转 word 的免费平台
  • 【excel】easy excel如何导出动态列
  • JFlash添加自定义MCU型号
  • 【汇编语言】包含多个段的程序(二)—— 将数据、代码、栈放入不同的段
  • 图像融合self
  • vscode远程连接+免密登录
  • 【Linux学习】【Ubuntu入门】1-3 ubuntu连接USB设备
  • IntelliJ+SpringBoot项目实战(七)--在SpringBoot中整合Redis
  • 职场中天天工作太累太无趣
  • 前端呈现效果:鱼眼相机城市环境图像分割
  • SQL语句执行的基本架构——数据库
  • Dify + Xinference:一站式本地 LLM 私有化部署和应用开发
  • 【C#设计模式(10)——装饰器模式(Decorator Pattern)】
  • 3D意识(3D Awareness)浅析
  • 《InsCode AI IDE:编程新时代的引领者》
  • 【Java】【Spring框架】【复习】1
  • RFC 2018 即《TCP Selective Acknowledgement Options》
  • 两大新兴开发语言大比拼:Move PK Rust
  • 自动驾驶仿真:软件在环(SIL)测试详解(精简版入门)
  • 华为云租户网络-用的是隧道技术
  • PC端微信多开
  • 嵌入式硬件实战提升篇(一)-泰山派RK3566制作多功能小手机