Bfs
  • 2024-11-21填涂颜色(BFS)
    #include<bits/stdc++.h>usingnamespacestd;intdx[]={1,0,-1,0};intdy[]={0,1,0,-1};intmain(){intn;cin>>n;queue<pair<int,int>>q;vector<vector<int>>v(n+2,vector<int>(n+2));//初始化矩阵,
  • 2024-11-17102. 二叉树的层序遍历【 力扣(LeetCode) 】
    文章目录零、原题链接一、题目描述二、测试用例三、解题思路四、参考代码零、原题链接102.二叉树的层序遍历一、题目描述给你二叉树的根节点root,返回其节点值的层序遍历。(即逐层地,从左到右访问所有节点)。二、测试用例示例1:输入:root=[3,9,20,null,nul
  • 2024-11-17BFS 算法专题(三):BFS 解决边权为 1 的最短路问题
    目录1.迷宫中离入口最近的出口 1.1算法原理1.2算法代码2.最小基因变化★★★2.1算法原理2.2算法代码3.单词接龙3.1算法原理3.2算法代码4.为高尔夫比赛砍树(hard)4.1算法原理 4.2算法代码1.迷宫中离入口最近的出口 .-力扣(LeetCode)1.1算
  • 2024-11-13【c++】广度优先搜索详解
    BFS(图论)BFS全称是 BreadthFirstSearch,中文名是宽度优先搜索,也叫广度优先搜索。是图上最基础、最重要的搜索算法之一。所谓宽度优先。就是每次都尝试访问同一层的节点。如果同一层都访问完了,再访问下一层。这样做的结果是,BFS算法找到的路径是从起点开始的 最短 合法
  • 2024-11-13BFS 算法专题(二):BFS 解决 FloodFill 算法
    目录1.图像渲染1.1算法原理1.2算法代码2.岛屿数量2.1算法原理2.2算法代码3.岛屿的最大面积3.1算法原理3.2算法代码4.被围绕的区域4.1算法原理4.2算法代码1.图像渲染.-力扣(LeetCode)1.1算法原理在本专题之前,对于FloodFill算法,我们就已
  • 2024-11-13迪杰斯特拉算法、弗洛伊德算法和BFS(广度优先搜索)
    迪杰斯特拉算法、弗洛伊德算法和BFS(广度优先搜索)都是用于求解最短路径问题的经典算法,它们各自有不同的特点和适用场景。以下是对这三种算法的介绍、区别以及代码实现的简要概述。迪杰斯特拉算法(Dijkstra'salgorithm)介绍:迪杰斯特拉算法是一种单源最短路径算法,用于计算一个
  • 2024-11-08计蒜客:网络延迟(DFS/BFS)
     题目要求的是最远的两个节点的距离,即求树的直径(树中所有最短路径距离的最大值即为树的直径 求树的直径有两种做法,两次bfs(或者dfs),另一种是用树形DP本文用两次DFS实现#include<bits/stdc++.h>usingnamespacestd;intn,u,v;vector<int>graph[50005];vector<bool>vi
  • 2024-11-06bfs(宽度搜索遍历)
    当边权为1时候,用bfs解决最短路问题题目:走迷宫给定一个 n×m的二维整数数组,用来表示一个迷宫,数组中只包含 0或 1,其中 0 表示可以走的路,1 表示不可通过的墙壁。最初,有一个人位于左上角 (1,1) 处,已知该人每次可以向上、下、左、右任意一个方向移动一个位置。请问,该
  • 2024-11-04计蒜客:最短路简化版(BFS)
     在queue中用结束标识来节约队列空间。也可以用vector来实现队列,用[left,right]控制队列。1#include<bits/stdc++.h>2usingnamespacestd;3intn,m,c;4vector<int>graph[1005];5vector<bool>visited(1005,false);6vector<int>level(1005,0);7queu
  • 2024-11-04计蒜客:互粉攻略(DFS/BFS)
     因为有重复数据,所以不得不等输入完以后再进行有向图的遍历。1#include<bits/stdc++.h>2usingnamespacestd;3intn,m;4set<int>graph[1005];5vector<bool>visited(1005,false);6vector<pair<int,int>>degree(1005,make_pair(0,0));//(入度,出度)
  • 2024-11-04迷宫问题(最短路径)——分别用DFS、BFS解决
    目录问题描述利用DFS(深度优先搜索)求解利用BFS(广度优先搜索)求解问题描述定义一个二维数组N*M,如5 × 5数组下所示:int maze[5][5] = {0, 1, 0, 0, 0,0, 1, 1, 1, 0,0, 0, 0, 0, 0,0, 1, 1, 1, 0,0, 0, 0, 1, 0,};它表示一个迷宫,其中的
  • 2024-11-03BFS和DFS算法全面解析【算法入门】
    1.前言和树的遍历类似,图的遍历也是从图中某点出发,然后按照某种方法对图中所有顶点进行访问,且仅访问一次。但是图的遍历相对树而言要更为复杂。因为图中的任意顶点都可能与其他顶点相邻,所以在图的遍历中必须记录已被访问的顶点,避免重复访问。根据搜索路径的不同,我们可以将遍
  • 2024-11-01【染色时间】
    题目代码#include<bits/stdc++.h>usingnamespacestd;#definexfirst#defineysecondtypedefpair<int,int>PII;constintN=510;intdx[]={0,0,-1,1},dy[]={-1,1,0,0};intd[N][N],w[N][N];intn,m;voidbfs(){memset(d,0x3f,sizeof
  • 2024-11-01ACWing1207_大臣的旅费(bfs)
    有一些自己的理解不知道大家能不能看懂1207.大臣的旅费-AcWing题库高质量的算法题库https://www.acwing.com/problem/content/1209/很久以前,TT 王国空前繁荣。为了更好地管理国家,王国修建了大量的快速路,用于连接首都和王国内的各大城市。为节省经费,TT 国的大臣们经过
  • 2024-11-01计蒜客:修建大桥(并查集/DFS/BFS)
     找到有几张连通图即可解决问题。DFS:1#include<bits/stdc++.h>2usingnamespacestd;3intn,m;4intgraph[1005][1005]={0};5boolvisited[1005]={false};6voiddfs(intp){7if(visited[p]){8return;9}10visited[p]
  • 2024-11-01BFS(Breath First Search 广度优先搜索)
    @目录一、知识及框架二、案例说明案例1:使用bfs计算二叉树的最小高度案例2:解开密码锁的最少次数,要求:请写一个算法,初始状态为0000,拨出target的最少次数,其中避免出现deadends中的包含的任意一个死亡密码,如果永远无法拨出target,则返回-1本人其他文章链接一、知识及框架BFS算法都是
  • 2024-10-31【双端广搜】字符串接龙
    110.字符串接龙#include<iostream>#include<cstring>#include<algorithm>#include<queue>#include<unordered_map>usingnamespacestd;constintN=510;intn;stringword[N];//如果两个队列共用st数组,那么两个队列永远不会碰头//因为在入队时我们会con
  • 2024-10-28算法学习笔记2:搜索
    搜索BFS我的理解:基础的bfs本质上也是动态规划,dist[i,j]表示到达(i,j)转移的最小次数。由于动态规划的无后效性,就是当前状态确定后,不需要管之前的状态转移。bfs是一层一层搜的,搜索的相当于是一个状态,第一个搜到的就是最优的。比如最简单的走迷宫,每个点只会走一次,那么第一
  • 2024-10-23【SSL 1823】消灭怪物(非传统BFS)
    题目大意小b现在玩一个极其无聊的游戏,它控制角色从基地出发,一路狂奔夺走了对方的水晶,可是正准备回城时,发现地图上已经生成了n个怪。现在假设地图是二维平面,所有的怪和角色都认为是在这个二维平面的点上。请你帮小b计算一下,从现在角色的位置开始,至少要消灭几个怪才能回到基地(坐
  • 2024-10-23DFS与BFS
    图论:一、图中DFS与BFS数和图的存储方式:m与n^2一个级别属于稠密图,m与n一个级别则属于稀疏图,可以从题目中明显看出来稠密图:邻接矩阵稀疏图:邻接表#include<bits/stdc++.h>usingnamespacestd;constintN=100100;intm,n;inth[N],e[N],ne[N],idx;intq[N],d[N];bool
  • 2024-10-22【头歌实训:邻接表存储图的广度优先遍历】
    头歌实训:邻接表存储图的广度优先遍历文章目录任务描述相关知识邻接表存储图图的遍历广度优先遍历过程:算法设计思路:编程要求测试说明输入格式:输出格式:样例输入:样例输出:源代码:任务描述相关知识邻接表存储图图的遍历广度优先遍历过程:算法设计思路:
  • 2024-10-21AT_abc348_d [ABC348D] Medicines on Grid 题解
    题目传送门题目大意:给定一个\(n\timesm\)的地图,要求从起点S走到终点T,每移动\(1\)个会消耗\(1\)点能量,障碍#不能走,空地为.可以走,体力消耗至\(0\)也无法移动,地图位置\((x_i,y_i)\)有一瓶可以变成\(e_i\)体力的药,可以选择是否喝。问能否抵达终点,可以输出Yes,否
  • 2024-10-2020241020比赛总结
    T1Reversehttps://www.gxyzoj.com/d/hzoj/p/P980假设1在点i时,这个1可以通过一次翻转到达那些点,将这些点和i连边,此时答案就是s到x的最短路但是,此时边数也会到达\(n^2\)级别考虑优化,因为边权均为1,所以可以直接bfs,可以发现每个点能转移的点的奇偶性是有限制的,而且每个点至多被更
  • 2024-10-20Leetcode 1926. 迷宫中离入口最近的出口
    1.题目基本信息1.1.题目描述给你一个mxn的迷宫矩阵maze(下标从0开始),矩阵中有空格子(用‘.’表示)和墙(用‘+’表示)。同时给你迷宫的入口entrance,用entrance=[entrancerow,entrancecol]表示你一开始所在格子的行和列。每一步操作,你可以往上,下,左或者右移动一