BFS
BFS
化身孤岛的鲸o
我祈祷拥有一颗透明的心灵
展开
-
LeetCode 257 二叉树的所有路径 dfs或bfs
LeetCode 257 二叉树的所有路径 dfs或bfs原创 2023-03-24 04:03:55 · 50 阅读 · 0 评论 -
PIPIOJ 1183: 信使PIPI 多次bfs+最小生成树
题目: http://39.106.164.46/problem.php?id=1183 思路: (1)将每个为’C’或者小写’c’的点哈希成1~cnt的序号,代表图中有cnt个点。 (2)多次bfs将所给的矩阵化为邻接矩阵。 (3)然后用prim算法求最小生成树。 代码如下: #include<iostream> #include<algorithm> #include<stdio.h> #include<cmath> #include<queue&g原创 2020-10-14 10:18:35 · 231 阅读 · 0 评论 -
PIPIOJ 1325: 社交网络 set的使用+bfs
题目: http://39.106.164.46/problem.php?id=1325 思路: 对于一个最终被感染的主机集合,我们可以使用set来存储这个集合,并且正好是序号递增的顺序,然后对于每一个可能的黑客主机,我们都进行一次bfs,跟这个主机距离小于等于t的所有主机必须都被感染,并且跟这个主机距离大于t的其他主机都不能被感染,那么这个主机才可能有嫌疑。 代码如下: #include<iostream> #include<algorithm> #include<stdio原创 2020-10-13 16:32:13 · 121 阅读 · 0 评论 -
PIPIOJ 1101: 着火的房间 bfs
题目: http://39.106.164.46/problem.php?id=1101 思路: 当判断能否走到一个点时,假设此时时间为t,只要判断在它周围 t / k个格子中是否有为f的点即可。 代码如下: #include<iostream> #include<algorithm> #include<stdio.h> #include<cmath> #include<queue> #include<cstring> #include原创 2020-10-12 17:06:22 · 170 阅读 · 0 评论 -
PIPIOJ 1032: 水陆距离 bfs
题目: http://39.106.164.46/problem.php?id=1032 思路: 如果从每个1开始bfs,是会超时的。 所以我们可以从每个0开始bfs,这样就可以减少bfs的次数。 代码如下: #include<iostream> #include<algorithm> #include<stdio.h> #include<cmath> #include<queue> #include<cstring> #include原创 2020-10-12 14:52:32 · 200 阅读 · 1 评论 -
洛谷P1443 马的遍历——标准广度优先搜索
Solution: 这是一道标准的广度优先搜索题目。我们知道,马在棋盘上是按“日”行走的,也就是有八个方向,我们沿着这八个方向广度优先搜索就可以了。 代码如下: #include<iostream> #include<queue> #include<stdio.h> #define MAX 500 using namespace std; int mp[MA...原创 2019-04-08 17:35:28 · 467 阅读 · 0 评论 -
洛谷P1135 奇怪的电梯 广度优先搜索
Solution: 这道题可以用bfs来做。因为电梯只能向上或者向下走且只能向上或向下走k层,并且题目要求我们求出最少按几次按钮,所以用bfs就可以了。 代码如下: //bfs #include<iostream> #include<queue> #define MAX 300 using namespace std; struct f{ int floor;//当...原创 2019-04-10 14:41:25 · 249 阅读 · 0 评论 -
洛谷 P1141 01迷宫 bfs优化
洛谷 P1141 01迷宫 bfs优化 题解: 这道题的n值较小,但需要查询的m值较大,每次都进行一次bfs显然是会超时的。所以我们需要进行优化。 对于一次bfs,我们可以得到一个连通块,而这个连通块内的所有点的值(这是值就是最多能移动多少格)是相同的,所以我们可以在一次bfs中得到这些点的值,下次就不用再进行bfs了。 我们可以使用一个visit[max][max]数组,然后全部初始化为-1,说...原创 2020-01-18 22:27:58 · 358 阅读 · 0 评论 -
PAT甲级 1091 Acute Stroke 三维BFS
Solution: 题目大意: 给出一个三维的立方体,这个立方体可以看成由连续的点组成,整个立方体的体积为m x n x l,其中l为立方体的高。其中有些点的值为1,其余的点都为0。再给出一个常数t,我们要求出所有值为1的块(这些块的体积还要大于t,否则不算)的总体积。每个点的体积为1,所以我们取六个方向,然后找到一个值为1的点,不断bfs直到所有点都被访问。把所有块的体积加起来就可以了。 代...原创 2019-09-10 23:35:00 · 180 阅读 · 0 评论 -
PAT甲级 1076 Forwards on Weibo BFS广度优先搜索
Solution: 题目要求:有n个用户,编号为1~n,他们都有微博,且给出他们每个人关注的用户的列表,最大层数为l。一个用户发布微博时,他们的粉丝都会转发这条微博,求在l层的限制下,这条微博的最大转发量是多少。 用bfs搜索关注该用户的人。 代码如下: //bfs广度优先搜索 #include<iostream> #include<vector> #includ...原创 2019-09-01 17:34:44 · 198 阅读 · 0 评论