
BFS
文章平均质量分 61
旺 崽
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
LeetCode 2092 找出知晓秘密的所有专家
题目链接 给你一个整数 n ,表示有 n 个专家从 0 到 n - 1 编号。另外给你一个下标从 0 开始的二维整数数组 meetings ,其中 meetings[i] = [xi, yi, timei] 表示专家 xi 和专家 yi 在时间 timei 要开一场会。一个专家可以同时参加 多场会议 。最后,给你一个整数 firstPerson 。 专家 0 有一个 秘密 ,最初,他在时间 0 将这个秘密分享给了专家 firstPerson 。接着,这个秘密会在每次有知晓这个秘密的专家参加会议时进行传播。原创 2021-11-29 15:05:28 · 517 阅读 · 0 评论 -
CSP 201912-4 区块链
题目链接 BFS 模拟~ 用一个二维数组存每个结点的主链,然后对每个结点建立结构体: currentTime——现在时刻 id——邻居结点对应的链编号 now——当前结点编号 father——邻居结点编号 把每个结点放入一个队列中进行 BFS 操作即可,每次操作判断是否更新当前结点的主链并修改邻居结点即可,具体注释见代码,AC代码如下: #include <bits/stdc++.h> using namespace std; typedef long long ll; const in原创 2021-04-07 20:56:41 · 1931 阅读 · 0 评论 -
AtCoder Beginner Contest 192 E.Train
AtCoder Beginner Contest 192 E.Train 题目链接 Problem Statement In the Republic of AtCoder, there are N cities numbered 1 through N and M railroads numbered 1 through M. Railroad i connects City AiA_iAi and City BiB_iBi bidirectionally. At time 0, KiK_iKi,原创 2021-02-21 20:42:27 · 2024 阅读 · 0 评论 -
LeetCode 778 水位上升的泳池中游泳
LeetCode 778 水位上升的泳池中游泳 题目链接 在一个 N x N 的坐标方格 grid 中,每一个方格的值 grid[i][j] 表示在位置 (i,j) 的平台高度。 现在开始下雨了。当时间为 t 时,此时雨水导致水池中任意位置的水位为 t 。你可以从一个平台游向四周相邻的任意一个平台,但是前提是此时水位必须同时淹没这两个平台。假定你可以瞬间移动无限距离,也就是默认在方格内部游动是不耗时的。当然,在你游泳的时候你必须待在坐标方格里面。 你从坐标方格的左上平台 (0,0) 出发。最少耗时多久你才能原创 2021-02-16 10:35:21 · 1725 阅读 · 0 评论 -
LeetCode 1631 最小体力消耗路径
LeetCode 1631 最小体力消耗路径 题目链接 你准备参加一场远足活动。给你一个二维 rows x columns 的地图 heights ,其中 heights[row][col] 表示格子 (row, col) 的高度。一开始你在最左上角的格子 (0, 0) ,且你希望去最右下角的格子 (rows-1, columns-1) (注意下标从 0 开始编号)。你每次可以往 上,下,左,右 四个方向之一移动,你想要找到耗费 体力 最小的一条路径。 一条路径耗费的 体力值 是路径上相邻格子之间 高度差绝原创 2021-02-15 09:45:57 · 2024 阅读 · 0 评论 -
AtCoder Beginner Contest 190 E.Magical Ornament
AtCoder Beginner Contest 190 E.Magical Ornament 题目链接 这场我觉得 EEE 要比 FFF 难点,因为 EEE 比较难看出来是 BFS+状压 DP,题目给定一个序列,要求输出包含该序列的最短序列 KKK, 因为题目只要求求出这个最小序列长度,那么我们假定答案序列中包含的目标序列排列为 C1,C2,⋯ ,CkC_1,C_2,\cdots,C_kC1,C2,⋯,Ck,那么答案就是 ∑i=1k−1d[Ci][Ci+1]+1\sum_{i=1}^{k-1}d[原创 2021-01-31 16:51:22 · 1722 阅读 · 0 评论 -
LeetCode 207 课程表
LeetCode 207 课程表 题目链接 你这个学期必须选修 numCourse 门课程,记为 0 到 numCourse-1 。 在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们:[0,1] 给定课程总量以及它们的先决条件,请你判断是否可能完成所有课程的学习? 示例 1: 输入: 2, [[1,0]] 输出: true 解释: 总共有 2 门课程。学习课程 1 之前,你需要完成课程 0。所以这是可能的。 示例 2: 输入: 2, [[1原创 2021-01-26 16:57:22 · 1620 阅读 · 0 评论 -
LeetCode 399 除法求值
LeetCode 399 除法求值 题目链接 给你一个变量对数组 equationsequationsequations 和一个实数值数组 valuesvaluesvalues 作为已知条件,其中 equations[i]=[Ai,Bi]equations[i] = [A_i, B_i]equations[i]=[Ai,Bi] 和 values[i]values[i]values[i] 共同表示等式 AiBi=values[i]\frac{A_i}{ B_i} = values[i]BiAi=va原创 2021-01-16 19:25:30 · 2432 阅读 · 0 评论 -
LeetCode 103 二叉树的锯齿形层序遍历
LeetCode 103 二叉树的锯齿形层序遍历 题目链接 给定一个二叉树,返回其节点值的锯齿形层序遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。 例如: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回锯齿形层序遍历如下: [ [3], [20,9], [15,7] ] 简单 BFS,在层序遍历的基础上加一个层号即可,若为偶数则把该层遍历得到的值翻转即可。注原创 2020-12-22 19:46:46 · 2298 阅读 · 0 评论 -
LeetCode 116 填充每个节点的下一个右侧节点指针
LeetCode 116 填充每个节点的下一个右侧节点指针 题目链接 给定一个完美二叉树,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下: struct Node { int val; Node *left; Node *right; Node *next; } 填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。 初始状态下,所有 next 指针都被设置为 NULL。 示例: 输入:{"$id原创 2020-10-15 19:05:11 · 2335 阅读 · 0 评论 -
LeetCode 501 二叉搜索树中的众数
LeetCode 501 二叉搜索树中的众数 题目链接 给定一个有相同值的二叉搜索树(BST),找出 BST 中的所有众数(出现频率最高的元素)。 假定 BST 有如下定义: 结点左子树中所含结点的值小于等于当前结点的值 结点右子树中所含结点的值大于等于当前结点的值 左子树和右子树都是二叉搜索树 例如: 给定 BST [1,null,2,2], 1 \ 2 / 2 返回[2]. 简单BFS,统计每个结点出现的次数即可,AC代码如下: /** * Definition原创 2020-09-24 14:38:13 · 2478 阅读 · 0 评论 -
LeetCode 404 左叶子之和
LeetCode 404 左叶子之和 题目链接 计算给定二叉树的所有左叶子之和。 示例: 3 / \ 9 20 / \ 15 7 在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24 对二叉树进行 BFS,如果某个结点的左子结点是叶子结点就加到答案里,AC代码如下: class Solution { public: int sumOfLeftLeaves(TreeNode* root) { int ans=0; q原创 2020-09-19 09:29:38 · 2528 阅读 · 0 评论 -
LeetCode 226 翻转二叉树
LeetCode 226 翻转二叉树 题目链接 翻转一棵二叉树。 示例: 输入: 4 / \ 2 7 / \ / \ 1 3 6 9 输出: 4 / \ 7 2 / \ / \ 9 6 3 1 简单 BFS,从根结点往下,依次交换左右儿子即可,AC代码如下: class Solution { public: TreeNode* invertTree(TreeNode* root) { queue原创 2020-09-16 18:37:56 · 2377 阅读 · 0 评论 -
LeetCode 637 二叉树的层平均值
LeetCode 637 二叉树的层平均值 题目链接 给定一个非空二叉树, 返回一个由每层节点平均值组成的数组。 示例 1: 输入: 3 / \ 9 20 / \ 15 7 输出: [3, 14.5, 11] 典型的 BFS,每层算一个答案即可,AC代码如下: /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left;原创 2020-09-12 11:53:32 · 2393 阅读 · 0 评论 -
LeetCode 107 二叉树的层次遍历 II
LeetCode 107 二叉树的层次遍历 II 给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 例如: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回其自底向上的层次遍历为: [ [15,7], [9,20], [3] ] 自上而下的层次遍历我们非常熟悉,用队列就可以轻松实现,这题就是跑一遍自上而下,最后将答案数组倒置即可,AC代原创 2020-09-06 11:57:36 · 2374 阅读 · 0 评论 -
算法与数据结构实践 走迷宫
算法与数据结构实践 走迷宫 实验内容 自定义一个迷宫,行、列值>8,它有一个出口和一个入口,先输出迷宫图形,然后找出一条从入口到出口的路径(上下左右四个方向)。分别用栈和队列求解问题。 这题我用 STL 写了 BFS 和 DFS,AC代码如下: //2、走迷宫:自定义一个迷宫,行、列值>8,它有一个出口和一个入口,先输出迷宫图形,然后找出一条从入口到出口的路径(上下左右四个方向)。分别用栈和队列求解问题。 //‘#’代表障碍,'.'代表通路,'S'代表起点,'E'代表终点 #include<原创 2020-09-06 10:44:18 · 3191 阅读 · 0 评论 -
AtCoder Beginner Contest 176 D.Wizard in Maze
AtCoder Beginner Contest 176 D.Wizard in Maze 题目链接 要考试了,上午抽空写波题解,这题我觉得比 E 难,首先两种方案,如果不考虑最优走法,要求最少次数只能 DFS,看题目的数据肯定 T 飞,所以只能 BFS,那么怎么才能最优呢,显然要先走第一种方案,第一种方案走不下去再走第二种方案,重复上述过程即可,那怎么实现呢?可以写两个 BFS,嵌套两个 while 循环即可,AC代码如下: #include<bits/stdc++.h> using nam原创 2020-08-23 08:54:56 · 2549 阅读 · 0 评论 -
牛客编程巅峰赛S1第7场 - 黄金&钻石 A.牛牛打怪兽
牛客编程巅峰赛S1第7场 - 黄金&钻石 A.牛牛打怪兽 题目链接 题目描述 身为屯里第一剑士的牛牛来到训练场里闯关,由于过于勤奋,牛牛的宝剑的耐久度降到了 2 ,这意味着牛牛最多只能打倒两只怪兽,否则将会被淘汰。 训练场的地图可以看作一棵以 1 为根节点的树,训练场的终点为这棵树的叶子结点,树上的每个结点最多有一只怪兽,结点与结点间的边上没有怪兽。 每一个有怪兽的结点上牛牛都需要打倒怪兽才算安全,并且牛牛一旦选定好打怪路线之后便不能走回头路。 请问牛牛有多少种到达终点且不被淘汰的路径。 输入 第一原创 2020-07-31 09:04:35 · 2451 阅读 · 0 评论 -
AtCoder Beginner Contest 146 D.Coloring Edges on Tree
AtCoder Beginner Contest 146 D.Coloring Edges on Tree 题目链接 题意比较简单,就是用最少的颜色上色,使得连在一个点上的所有边颜色都不同 答案很好找,就是最大的度数,难点在于上色,可以这么考虑: 找到度数最大的点,以此点为起点进行 BFS,设一个点的颜色数组,起点的颜色置为 000,当以某个点 BFS 时,所有与之相连的点都不能与其同色 每次 BFS,都从 111 颜色开始上色,若与起点颜色重复或者某点上色完毕颜色都要加 111 取模 但是题目要求输出原创 2020-07-29 20:45:49 · 2492 阅读 · 0 评论 -
HDUOJ 1078 FatMouse and Cheese
HDUOJ 1078 FatMouse and Cheese 题目链接 Problem Description FatMouse has stored some cheese in a city. The city can be considered as a square grid of dimension n: each grid location is labelled (p,q) where 0 <= p < n and 0 <= q < n. At each grid lo原创 2020-07-05 10:04:28 · 2369 阅读 · 0 评论 -
2019牛客暑期多校训练营(第四场)J.free
2019牛客暑期多校训练营(第四场)J.free 题目链接 题目描述 Your are given an undirect connected graph.Every edge has a cost to pass.You should choose a path from S to T and you need to pay for all the edges in your path. However, you can choose at most k edges in the graph and ch原创 2020-06-28 15:46:42 · 2456 阅读 · 0 评论 -
2019牛客暑期多校训练营(第二场)D.Kth Minimum Clique
2019牛客暑期多校训练营(第二场)D.Kth Minimum Clique 题目链接 题目描述 Given a vertex-weighted graph with N vertices, find out the K-th minimum weighted clique. A subset of vertices of an undirected graph is called clique if and only if every two distinct vertices in the subset原创 2020-06-21 16:10:21 · 2362 阅读 · 0 评论 -
Educational Codeforces Round 89 (Rated for Div. 2) C. Palindromic Paths
Educational Codeforces Round 89 (Rated for Div. 2) C. Palindromic Paths 题目链接 You are given a matrix with n rows (numbered from 1 to n) and m columns (numbered from 1 to m). A number ai,j is written in the cell belonging to the i-th row and the j-th column,原创 2020-06-15 20:47:37 · 2352 阅读 · 0 评论 -
AtCoder Beginner Contest 170 F. Pond Skater
AtCoder Beginner Contest 170 F. Pond Skater 题目链接 第一次碰到会写的 F,真的哭辽/(ㄒoㄒ)/~~,BFS+剪枝 题目有几个坑点: 1.初始化,我们直接用变量建二维数组不一定就是0,要初始化一下 2.剪枝是一门艺术,怎么剪效果最好,这题的关键就是步数判断,假如 aaa 能 BFS 到 bbb,如果此时 bbb 的步数已经小于等于 aaa 了,那么很明显就没有走下去的必要了 AC代码如下: #include<bits/stdc++.h> using原创 2020-06-15 09:56:07 · 2579 阅读 · 0 评论 -
Codeforces Round #648 (Div. 2) D. Solve The Maze
Codeforces Round #648 (Div. 2) D. Solve The Maze 题目链接 Vivek has encountered a problem. He has a maze that can be represented as an n×m grid. Each of the grid cells may represent the following: Empty — ‘.’ Wall — ‘#’ Good person — ‘G’ Bad person — ‘B’ Th原创 2020-06-12 09:24:41 · 2355 阅读 · 0 评论 -
东华大学2020年程序设计竞赛(同步赛)C.City Supplies
东华大学2020年程序设计竞赛(同步赛)C.City Supplies 添加链接描述 题目描述 YZ is the king of the kingdom. There are n cities in his kingdom. To celebrate the 50th anniversary of the founding of his country, YZ decided to distribute supplies as a reward to all the cities. We all know原创 2020-06-07 21:06:41 · 37371 阅读 · 0 评论 -
AtCoder Beginner Contest 168 D... (Double Dots)
AtCoder Beginner Contest 168 D… (Double Dots) 题目链接 简单图论题,从 111 点 BFS 即可,用 ans[i]ans[i]ans[i] 记录答案,如果距离可以更新就把ans[i]ans[i]ans[i] 置为前一个点即可,注意 DFS 会超时,AC代码如下: #include<bits/stdc++.h> using namespace std; typedef long long ll; const int N=1e5+5; vector&原创 2020-05-18 13:41:25 · 2372 阅读 · 0 评论 -
HDUOJ 2102 A计划
HDUOJ 2102 A计划 题目链接 Problem Description 可怜的公主在一次次被魔王掳走一次次被骑士们救回来之后,而今,不幸的她再一次面临生命的考验。魔王已经发出消息说将在T时刻吃掉公主,因为他听信谣言说吃公主的肉也能长生不老。年迈的国王正是心急如焚,告招天下勇士来拯救公主。不过公主早已习以为常,她深信智勇的骑士LJ肯定能将她救出。 现据密探所报,公主被关在一个两层的迷宫里,迷宫的入口是S(0,0,0),公主的位置用P表示,时空传输机用#表示,墙用*表示,平地用.表示。骑士们一进入时空传原创 2020-05-12 17:10:05 · 2614 阅读 · 0 评论 -
HDUOJ 2612 Find a way
HDUOJ 2612 Find a way Pass a year learning in Hangzhou, yifenfei arrival hometown Ningbo at finally. Leave Ningbo one year, yifenfei have many people to meet. Especially a good friend Merceki. Yifenfe...原创 2020-03-06 15:14:35 · 2330 阅读 · 0 评论 -
POJ 3984 迷宫问题
POJ 3984 迷宫问题 Description 定义一个二维数组: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, }; 它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线...原创 2020-03-06 14:43:16 · 3127 阅读 · 0 评论 -
蓝桥杯 提高题 Minesweeper
蓝桥杯 提高题 Minesweeper 题目描述 Minesweeper Have you ever played Minesweeper? This cute little game comes with a certain operating system whose name we can’t remember. The goal of the game is to find where a...原创 2020-02-16 15:58:37 · 3074 阅读 · 1 评论 -
牛客小白月赛21 J.Jelly
牛客小白月赛21 J.Jelly 题目描述 Nancy喜欢吃果冻! Nancy钻进了一个n×n的果冻里,她想从(1,1,1)一路上、下、左、右、前、后六个方向吃到(n,n,n)。 但果冻毕竟是有许多口味的,标记为*的口味是Nancy不愿意吃的,其余的果冻均标记为.。 Nancy不想吃坏肚子,于是她想尽可能少的吃果冻。 下面给出果冻的情况,请你帮忙计算一下她能吃多少块果冻叭! 输入描述: 第一行:一...原创 2020-01-19 10:23:33 · 2981 阅读 · 0 评论 -
吉首大学第九届"新星杯"大学生程序设计大赛 C.始战
吉首大学第九届"新星杯"大学生程序设计大赛 C.始战 题目描述 天地不仁,以万物为刍狗。 东汉末年,群雄并起。十八路诸侯各自为战,为得一地一城,大肆征战,民众死伤无数。 诸葛亮密如神鬼,疾如风雷。进不可挡,退不可追。昼不可攻,夜不可袭。多不可敌,少不可欺。前后应会,左右指挥。移五行之性,变四时之令。 神人也。 现,亮得诸侯割据图。亮根据此图,预测第一战将会在何处爆发。 此图由n*m个单位组成,图中...原创 2020-01-06 21:28:00 · 2884 阅读 · 0 评论 -
AtCoder Beginner Contest 148 F.Playing Tag on Tree
AtCoder Beginner Contest 148 F.Playing Tag on Tree 题目链接 Problem Statement (略) Output Print the number of moves Aoki will perform before the end of the game. Sample Input 1 5 4 1 1 2 2 3 3 4 3 5 Sampl...原创 2019-12-27 16:02:45 · 3025 阅读 · 2 评论 -
牛客小白月赛20 I.小小小马
牛客小白月赛20 I.小小小马 给定一个棋盘,已知棋盘的行数和列数是 n,m,每个整数坐标处都有一个糖果,KevenKeven 初始在棋盘的左下角 (1,1) 出发,并且 Keven 每次只能跳 ”日” 字,假设 Keven可以跳无数次,但不可以跳出棋盘,现在 Keven 想知道他能否拿到棋盘上的所有糖果。 输入描述 在一行中给出两个数字 n,m,表示棋盘的大小 (1<=n,m<=20...原创 2019-12-22 16:21:12 · 2821 阅读 · 0 评论 -
HHUOJ 1646 算法7-6:图的遍历——广度优先搜索
HHUOJ 1646 算法7-6:图的遍历——广度优先搜索 题目描述 广度优先搜索遍历类似于树的按层次遍历的过程。其过程为:假设从图中的某顶点v出发,在访问了v之后依次访问v的各个未曾被访问过的邻接点,然后分别从这些邻接点出发依次访问它们的邻接点,并使“先被访问的顶点的邻接点”先于“后被访问的顶点的邻接点”被访问,直至图中所有已被访问的顶点的邻接点都被访问到。若此时图中尚有顶点未被访问,则另选图中...原创 2019-03-19 09:18:01 · 1222 阅读 · 0 评论 -
HHUOJ 1828 Oil Deposit
HHUOJ 1828 Oil Deposit 题目描述 The GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvComp works with one large rectangular region of land at a time, and cr...原创 2019-05-23 21:19:20 · 689 阅读 · 0 评论 -
HHUOJ 1896 营救小明
HHUOJ 1896 营救小明 题目描述 一天,小明梦见自己被外星人抓走了,他被关在了一座监狱里,这座监狱形如N*M(N,M<=200)的矩阵,监狱里有墙、道路和守卫。 小明的小伙伴们得知他被外星人抓走后想要把他救出来,他们要试图接近关押小明的那间房间。当他们经过有守卫的房间时他们必须干掉守卫后继续前进,而当遇到墙的时候则只能绕道。他们只能向上下左右四个方向移动,每移动一次耗时1分钟,干掉一...原创 2019-06-18 21:17:46 · 1093 阅读 · 2 评论 -
HHUOJ 1396 马的移动
HHUOJ 1396 马的移动 题目描述 小明很喜欢下国际象棋,一天,他拿着国际象棋中的“马”时突然想到一个问题: 给定两个棋盘上的方格a和b,马从a跳到b最少需要多少步? 现请你编程解决这个问题。 提示:国际象棋棋盘为8格*8格,马的走子规则为,每步棋先横走或直走一格,然后再往外斜走一格。 输入 输入包含多组测试数据。每组输入由两个方格组成,每个方格包含一个小写字母(ah),表示棋盘的列号,和一...原创 2019-06-29 16:44:52 · 983 阅读 · 0 评论 -
POJ 3026 Borg Maze
POJ 3026 Borg Maze Description The Borg is an immensely powerful race of enhanced humanoids from the delta quadrant of the galaxy. The Borg collective is the term used to describe the group consciousn...原创 2019-09-18 21:51:19 · 2746 阅读 · 2 评论