BFS
分享关于BFS(广度优先搜索)的题解
MangataTS
一个爱折腾的Coder
展开
-
AcWing 847. 图中点的层次(BFS模板)
题目链接https://www.acwing.com/problem/content/849/思路直接宽搜,然后将当前没有访问过的点放进队列,直到搜完为止代码#include<bits/stdc++.h>using namespace std;//----------------自定义部分----------------#define ll long long#define mod 1000000007#define endl "\n"#define PII pair<原创 2022-02-08 23:43:11 · 190 阅读 · 0 评论 -
Catch That Cow抓住那只奶牛(BFS,广度优先搜索)
# **Catch That Cow(抓住那只奶牛)**【题意】:农场主要去追一直逃跑的牛,每次移动有三种选择,位置加一,位置减一,位置乘二,要找到最快的方法让农夫追到牛(也就是移动的次数最少,这个过程是线性的)具体的题目请见:[原题链接:](http://poj.org/problem?id=3278)。思路: 从题目中位置移动就可以看出是一个搜索问题,又加上要找最快的方法,也就是在暗示这...原创 2020-01-22 18:47:00 · 1068 阅读 · 1 评论 -
Dungeon Master 地下城大师(BFS进阶)
题目链接:http://poj.org/problem?id=2251知道你看不懂题(手动滑稽):友情链接。题意:找到从S到E的最少步数的路径,输出该步数,不过有意思的是这个类似迷宫问题不是二维的,是一个三维迷宫,其实三维迷宫和二维没多大差别,只是时间复杂度更多一点,搜索的方向更多一点,初次接触可能会被难住。代码:#include<stdio.h>#include<...原创 2020-01-23 11:45:00 · 595 阅读 · 1 评论 -
AcWing 844. 走迷宫(BFS or DP)
题目链接https://www.acwing.com/problem/content/description/846/思路直接用BFS跑一个最短路就好了,因为边权都是为1的,并且每次只有四个方向选择代码#include<bits/stdc++.h>using namespace std;//----------------自定义部分----------------#define ll long long#define mod 1000000007#define endl "\原创 2022-01-25 20:35:37 · 229 阅读 · 0 评论 -
Find The Multiple BFS入门
原题链接:http://poj.org/problem?id=1426看不懂题意?嘿嘿,友情链接。题意:输入一个n,就是找到一个由0,1组成的数M能够整除n,然后输出M。老规矩直接上代码: BFS代码:#include <stdio.h>#include <queue>using namespace std;int n;//宏定义 void BF...原创 2020-01-22 19:47:00 · 143 阅读 · 1 评论 -
AcWing 2019. 拖拉机(双端BFS)
题目链接https://www.acwing.com/problem/content/2021/思路一个有0代价和1代价边权的最短路,我们用双端队列将0和1边权用一个双端队列分开存储,然后进行一个类迪杰斯特拉的最短路即可,值得注意的是,这个二维平面是无限大的,但是我们只需要多使用一层(这一圈都是空的)就好了,因为效果都一样,详情请看代码代码#include <bits/stdc++.h>using namespace std;const int N = 1e3+10;bool原创 2022-01-26 23:23:06 · 244 阅读 · 0 评论 -
AcWing 845. 八数码(BFS)
题目链接https://www.acwing.com/problem/content/description/847/思路这道题的难点在于怎么存储状态,因为是一个九宫格,我们其实可以把它压缩成一行,然后用字符串存储,那么这样我们就解决了状态问题,然后我们直接通过find函数或者自己手写匹配,每次找到x的位置,然后将x往四个方向移动,看是否是新状态,当然不能出界,如果我们找到了这个状态那么就返回这个状态的最短交换次数即可,如果没找到最后返回1即可,其实我是先写的DFS,然而DFS好像不太聪明的样子,然后原创 2022-01-25 20:36:25 · 366 阅读 · 0 评论 -
Oil Deposits(油田问题)
题意:找出地图上的油层数,每个油层由多个油藏组成,这些油藏相邻,常规的搜索问题,每次向八个方向搜寻油藏。题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1241友情链接:点这里。 此处为DFS代码:#include<stdio.h>#include<queue>#include<iostream>...原创 2020-01-22 20:32:00 · 1401 阅读 · 1 评论