bfs
  • 2024-06-22YC307A [ 20240622 CQYC省选模拟赛 T1 ] 划船(boat)
    题意给定一个有向图\(G\),以及将所有边反向重连的无向图\(T\)。你最多可以在\(T\)上连续走\(k\)条边,走过每条边的代价都为\(1\),然后必须在\(G\)的对应点上走一条边以恢复体力。若当前对应点没有出边,则停留在该点\(1\)代价。求每个点到\(n\)的最小代价。Sol考
  • 2024-06-146.14BFS,DFS
    7-1列出联通集给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集。假设顶点从0到N−1编号。进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的顺序访问邻接点。输入格式:输入第1行给出2个整数N(0<N≤10)和E,分别是图的顶点数和边数。随后E行,每行给出
  • 2024-06-13BFS(广度优先搜索)优化技巧 — 双向遍历
    BFS优化技巧—双向遍历在之前我发过动态规划框架与动态规划的优化技巧—空间压缩,类似的,BFS框架也有相应的优化技巧双向遍历。从技巧的名字就可以看出,双向遍历指的就是从起点开始找终点的同时,也从终点开始找起点,一旦两个寻找过程出现交集,那么起点到终点的路径也就找出
  • 2024-06-11leetcode刷题-归纳总结
    框架思维124.求⼆叉树中最⼤路径和后序遍历最大路径转换为为求单边最大路径105.根据前序和中序遍历构造二叉树前序遍历,找到根节点构建root,得到左右子树区间,左右子树递归构建注意:1.终止条件2.构建unordered_map230.寻找⼆叉搜索树中的第k⼩的元素⼆叉搜索树即左支树所有
  • 2024-06-10BFS实现图的点的层次-java
    加强对广度优先搜索的理解,其实就是主要的3个步骤,外加数组模拟单链表是基础,要搞懂。目录前言一、图中点的层次二、算法思路1.广度优先遍历 2.算法思路三、代码如下1.代码如下(示例):2.读入数据:3.代码运行结果:总结前言加强对广度优先搜索的理解,其实就是主要的3个步
  • 2024-06-09KDY----BFS_宽度优先搜索习题
    题目由可达鸭提供,本篇够  字,阅读时注意休息和暂停。一、课时提交情(AC情况)T1、武士风度的牛  100/100(老师带着做的。)T2、抓住那头牛100/100T3、仙岛求药  100/100T4、TheCastle 0/100(时间不够了,就看了看题目。)二、目录T1、武士风度的牛T2、抓住那头牛T
  • 2024-06-08搜索算法总结
    概述搜索算法搜索算法大致可以分为以下几类:DFS深度优先搜索BFS广度优先搜索迭代加深搜索A*搜索IDA*启发式迭代加深搜索meetinthemiddle折半搜索双向DFS双向BFSDancingLinks舞蹈链DancingLinks算法是省选内容,在此不进行说明。剪枝技巧剪枝是搜索题常
  • 2024-06-07[ABC176D] Wizard in Maze
    题目链接:https://atcoder.jp/contests/abc176/tasks/abc176_d双端队列bfs模版题.众所周知,用队列实现bfs,队列中存的是当前的状态那么在当前这种题目中,下一步怎么走有两种决策,我们要把两种决策可能导致的状态更新全部都记录下来,因此我们可以用双端队列来实现bfs,把正常走的
  • 2024-06-03Count BFS Graph
    CountBFSGraph题目信息LuoguCF1906J、Codeforces1906J题面翻译对于一个\(n\)个节点的无向图的邻接矩阵\(M\),满足\(M_{i,i}=0,M_{u,v}=M_{v,u}\),\(M_{i,j}=1\)表示\(M_{i,j}\)右边,进行下面的bfs生成\(A\)数组。BFS(): 清空数组A,清空队列Q在A中
  • 2024-06-02[AIGC] 广度优先搜索(Breadth-First Search,BFS)详解
    广度优先搜索(Breadth-FirstSearch,简称BFS)是一种用于图或者树的搜索算法,它的特点是按照“广度”进行搜索,即在扩展搜索路线的时候,BFS会先考虑当前节点的所有邻近节点,也就是说,它逐层地进行搜索。文章目录基本原理实现方法应用场景总结基本原理广度优先搜索的基本
  • 2024-05-29BFS
    BFS通常用于解决最短路问题。一旦题目提到“最短”,就要考虑是否可以用BFS。BFS适用于边权为0或1的问题。如果所有边权都是1,则可以直接用BFS。如果有边权为0,则需用双端BFS,也可用Dijkstra算法。在BFS中,分为单源BFS和多源BFS。单源BFS从一个起点开始,逐层扩展搜索。多源BFS允许同时
  • 2024-05-22广度优先搜索 洛谷P1443马的遍历(bfs超时问题)
    广度优先搜索洛谷P1443这里先介绍一下广度优先搜索:广度优先搜索就是先将第一步可能的步骤全部记录,遍历过后,再将由第一步到达的第二步全部记录并遍历,直到最后全部遍历。而此题要求我们求得最少步数,广度优先就能够达到最少步数的要求,因为广度优先是先通过搜索所有可能的第n步才
  • 2024-05-14BFS详解
    BFS在最优性问题中,状态按照非最优化属性进行分组,且每个分组存在且只需要保留最优状态。一般最优性问题分为\(2\)种,边权为正数、边权为非负数。边权为正数且相同这种情况,转移时最优化属性的值会变得更劣,每次转移时最优化属性的值会变劣最小单位。而最优化属性有拓扑序,可以按
  • 2024-05-09[LeetCode] 最短的桥 双BFS Java
    Problem:934.最短的桥目录思路复杂度Code思路先找到第一个岛屿,根据每一个岛屿的岛屿块的位置多源查找这个块与第二个岛屿的距离,先找到的就是最少的距离同时,将已遍历过的岛屿标记为-1,避免重复入队复杂度时间复杂度:添加时间复杂度,示例:$O(n^2)$空间复杂度:添
  • 2024-04-29【BFS】腐烂的橘子
    https://leetcode.cn/problems/rotting-oranges/description/?envType=study-plan-v2&envId=top-100-liked从一个点向上下左右移动并且判断是否边界可以用fordx,dyin[(1,0),(-1,0),(0,1),(0,-1)]:nx=x+dxny=y+dyif0<=nx<rowsand0<=ny<
  • 2024-04-28vector开二维数组&&深搜迷宫问题&&BFS
    vector<vector>vis(N+10(一维的大小),vector(N+10(二维的大小),0(初始化赋值)),step(N+10,vector(N+10,0));vector<vector>vis(N+10,vector(N+10)),step(N+10,vector(N+10));开数组大小一定要超过题目本身大小;#include<bits/stdc++.h>usingnamespacestd;#defineintl
  • 2024-04-27数据结构与算法学习(1)——BFS(广度优先搜索)
    BFS基础BFS会从根节点开始搜索,在每一个路口面临分叉的时候,先把每个岔路记录下来,然后再去一个一个的往前走一步。节点进行广度优先搜索的顺序题目PS:下列题目均来自leetcode中灵神题单1311.获取你好友已观看的视频
  • 2024-04-27【BFS】abc351D Grid and Magnet 题解
    传送门D-GridandMagnet题意:给定h行w列的图表,其中部分位置有磁铁,人物会在磁铁四周((x+1,y),(x-1,y),(x,y+1),(x,y-1))停止,某点的自由度定义为从该点出发最多可到的方块数目可以走重复路前置例题:求连通块大小洛谷P1141思路:由自由度的定义联想到连通块的大小,从而决定用BFS
  • 2024-04-25笔记:拓扑排序
    定义拓扑排序(Topologicalsorting),是对一个DAG排序的算法。对于排序后的序列\(s\),设\(t_i\)是节点\(i\)在\(s\)中的位置,那么该DAG上的每条边\(u\tov\),\(t_u<t_v\)。换句话说,就是每条边\(u\tov\),\(u\)不能在\(v\)的后面。模板link。考虑两种算法,分别基于广
  • 2024-04-25抖音的倒水问题, 计算机bfs求解
    暴力求解bfs方法.并且找到的一定是最少步骤问题:抖音上面又来了一个倒水游戏例子:3个杯子,容量12,9,5上来12是满的.然后都没有刻度只能倒到一个满这种倒法,然后最后希望倒出2个6ml的.#抖音上面又来了一个倒水游戏#例子:3个杯子,容量12,9,5上来12是满的.然
  • 2024-04-17动态规划、回溯、BFS、二分、滑动窗口总结
    动态规划动态规划的核心问题:重叠子问题,最优子结构,状态转移方程动态规划与记忆递归的区别:记忆递归为自顶而上的递归剪枝,动态规划为自底向上的循环迭代;正确的状态转移方程+dp[]数组:确定状态(原问题和子问题中变化的变量)->确定dp数组的定义dp[i]->确定当前状态的'选择'并确定
  • 2024-04-14P10289 [GESP样题 八级] 小杨的旅游 题解
    题目简述给定一棵树,节点之间的距离为$1$,树上有$k$个传送门,可以从一个传送门瞬间传送到另一个传送门,有$q$此询问,问$u$和$v$之间的最短距离是多少。题目分析首先考虑没有传送门,我们可以直接求两个点的LCA,再用高度容斥计算即可。如果有传送门,那么有用与不用两种选择,如
  • 2024-04-12网络最大流(Dinic)
    网络最大流Dinic算法代码笔记代码思路主体部分:构造分层图,找增广路(即bfs和dfs)辅助部分:当前弧优化(在bfs中进行重置,在dfs中进行更新)整合:首先是存图与主函数部分,通常还包括对问题的转换(也就是建图)。剩下的就是bfs和dfs。考虑bfs需要实现哪些功能:最主要地,它需要提供一个分
  • 2024-04-11蓝桥杯-长草(BFS)
    0.题目【问题描述】小明有一块空地,他将这块空地划分为n行m列的小块,每行和每列的长度都为1。小明选了其中的一些小块空地,种上了草,其他小块仍然保持是空地。这些草长得很快,每个月,草都会向外长出一些,如果一个小块种了草,则它将向自己的上、下、左、右四小块空地扩展,这四小块
  • 2024-04-08广度优先搜索 Breadth-First Search(BFS)
    问题引入​对于每一个问题,都会有相应的解,在之前的学习中求解的过程,都是以一条条线的形式产生可能解进行筛选验证是否正确。本章节我们来考虑另外一种思路,类似于洪水爆发,从一个源头开始逐渐蔓延开来,直到所有可达的区域都被洪水淹没,所以我们也把这种算法称之为洪泛法。洪泛法会