IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> BFS算法助记:建-入-量:头-出-入 -> 正文阅读

[数据结构与算法]BFS算法助记:建-入-量:头-出-入

【BFS算法助记解析】
大家可以参见问题?https://blog.csdn.net/hnjzsyjyj/article/details/118642238?的代码来理解上面的“BFS算法助记:建-入-量:头-出-入”。
其中,“建-入-量:头-出-入”各字的解析如下:
建:建队
入:入队
量:队中元素个数。作为while循环的条件。
头:队头
出:出队
入:入队

一个记忆场景,“小猫咪在好的洞口,想洞。先用胡子过洞口大小后,然后用头出入洞”。

为方便学习,将上面?问题?https://blog.csdn.net/hnjzsyjyj/article/details/118642238?的代码重写如下。大家可将BFS算法助记中的6个字和相应的代码作比对。

#include<bits/stdc++.h>
using namespace std;
 
struct PII {
	int u;
	int v;
} po;
 
const int maxn=1010;
char g[maxn][maxn];
 
int dx[]= {1,0,-1,0,1,-1,1,-1};
int dy[]= {0,1,0,-1,1,-1,-1,1}; //direction
 
int n,m;
 
void bfs(int x,int y) {
	queue<PII> q;
	po.u=x;
	po.v=y;
	q.push(po);
 
	while(q.size()) {
		PII t=q.front();
		q.pop();
		for(int i=0; i<8; i++) {
			int a=t.u+dx[i],b=t.v+dy[i];
			if(a<0 || b<0 || a>=n || b>=m) continue;
			if(g[a][b]=='.') continue;
 
			g[a][b]='.';
 
			po.u=a;
			po.v=b;
			q.push(po);
		}
	}
}
 
int main() {
	cin>>n>>m;
 
	for(int i=0; i<n; i++)
		for(int j=0; j<m; j++)
			cin>>g[i][j];
 
	int ans=0;
 
	for(int i=0; i<n; i++) {
		for(int j=0; j<m; j++) {
			if(g[i][j]=='W') {
				bfs(i,j);
				ans++;
			}
		}
	}
 
	cout<<ans<<endl;
 
	return 0;
}
 
 
/*
in:
20 10
..W..W.WWW
.W.W.W.WWW
.WW...W..W
WW.W.W.WW.
WWWWW..W..
...WW.WWWW
.W..W.W...
.WW.WW...W
.WW.WWWW..
.W......WW
.WWWWWWWWW
W..WW.WWWW
.WW.W.WWWW
...WWW....
W........W
W.WW..W...
W..WW.WWWW
W..W.W...W
W.WW.W..W.
....WW.W..
out:5
in:
10 12
W........WW.
.WWW.....WWW
....WW...WW.
.........WW.
.........W..
..W......W..
.W.W.....WW.
W.W.W.....W.
.W.W......W.
..W.......W.
out:3
*/





【参考文献】
https://blog.csdn.net/hnjzsyjyj/article/details/118642238
https://blog.csdn.net/weixin_43964993/article/details/115579902
https://blog.csdn.net/hnjzsyjyj/article/details/119255867
https://blog.csdn.net/hnjzsyjyj/article/details/118736059


?

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-07-17 16:48:39  更:2022-07-17 16:49:22 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 23:42:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码