bfs
WTIAW.TIAW
这个作者很懒,什么都没留下…
展开
-
迷宫 BFS
题目连接思路:特判一些条件即可。import java.math.BigInteger;import java.util.ArrayList;import java.util.Arrays;import java.util.Collections;import java.util.Comparator;import java.util.LinkedList;import java.util.Queue;import java.util.Scanner;public class Main原创 2020-10-05 16:57:45 · 201 阅读 · 1 评论 -
2020QAU校赛D题题解:要迟到了 双向BFS
题目描述:这里是引用题目描述:QAUer住在西苑,有一天他起晚了,眼看要迟到了,他要赶快赶到东苑教学区上课,西苑和东苑教学区必须要经过地下通道。请你为他寻找一条最短的路径,使他快速赶到教学区。Input:输入一个n代表n * n地图,接下来n行输入地图.’S’表示西苑,’L’表示地下通道,’T’表示东苑教学区.’.’代表可走道路,’#’表示障碍物,不可走.Ouput:输出一个数,代表最短路径长度.保证必定存在可行解。Sample input :4S.#.…#..L.#…T.Samp原创 2020-10-05 10:52:39 · 284 阅读 · 1 评论 -
第十届 蓝桥杯 试题 E: 迷宫
【问题描述】 下图给出了一个迷宫的平面图,其中标记为 1 的为障碍,标记为 0 的为可 以通行的地方。 010000 000100 001001 110000 迷宫的入口为左上角,出口为右下角,在迷宫中,只能从一个位置走到这 个它的上、下、左、右四个方向之一。 对于上面的迷宫,从入口开始,可以按DRRURRDDDR 的顺序通过迷宫, 一共 10 步。其中 D、U、L、R 分别表示向下、向上、向左、向右走。 对于下面这个更复杂的迷宫(30 行 50 列),请找出一种通过迷宫的方式, 其使用的步数最少,在步数.原创 2020-08-29 22:31:19 · 219 阅读 · 2 评论 -
Party BFS搜索最长路径 + 记忆化剪枝 || dfs(逆向思维找父亲)
题目链接题意:给你几棵树,让你找最深的层数。思路:这个题有很多做法,栈回溯,BFS, 直接模拟都可。不用剪枝也可以,用Vector[]e = new Vector[xxx];存储标记,记得先将列表中的元素定义为Integer类型。dfs,bfs对于邻接表都是O(n+m)O(n + m)O(n+m)的复杂度。使用maxdp每次更新同一层的最大深度。maxdp1更新每一分支的最大深度。...原创 2020-03-17 09:20:42 · 291 阅读 · 0 评论 -
密码锁 bfs 字符转字符串 用 String.valuesOf()!!!!!!!!!!!!!!
传送门具体的没什么好说的。各种情况建边就好了。String.ValueOf()!!!String.ValueOf()!!!String.ValueOf()!!!import java.util.HashMap;import java.util.LinkedList;import java.util.Map;import java.util.Queue;import java.u...原创 2020-02-11 22:18:37 · 116 阅读 · 0 评论 -
蒜头君回家 双向BFS Java
思路;因为钥匙的个数可能有多个,所以第一次bfs找出从起点到每个p的最短距离。然后再找出终点到每个p的最短距离,最后枚举最小。这里注意:1.数组赋值不能一起赋!2.Arrays.fill只能用于一维数组3.集合中存坐标可以用数组来完成‘Queue<int[]>que = new LinkedList<int[]>();记住每次数组要临时建 每次都要分配空间。传...原创 2020-02-11 20:47:55 · 385 阅读 · 0 评论 -
Java Bfs 哆啦A梦的时光机
Java中的queue用LinkedList实现que.poll() 删除 que.peek();返回队首 que.clear()清空队列 que.offer()插入队列建立四条边即可传送门package jisuanke;import java.util.*;public class BfsTimeMachine { public static void main(String[]...原创 2020-02-11 15:51:18 · 255 阅读 · 0 评论 -
1345. 跳跃游戏 IV bfs
思路:bfs的思想就是一颗树上,最先到达目标结点。给出移动的三个条件,问最小操作次数到达目标结点。三个条件建三条边即可。注意特判相同转移情况。dist[i] 原点到i点的距离 flag[i] 用于标记是否可以转移。Ac代码:const int Maxn = 5e4 + 5;int dist[Maxn], flag[Maxn];map<int, vector<int>&...原创 2020-02-10 12:43:33 · 211 阅读 · 0 评论