算法_BFS
慢熱乖友
这个作者很懒,什么都没留下…
展开
-
BFS_6:字串变换
BFS_6:字串变换 已知有两个字串 A,BA,B 及一组字串变换的规则(至多 66 个规则): abcd xyz abc xu ud y y yz 3 问题分析: 既然说到最少的变换步数,那无非就想到了BFS,但是这题想要拿满分不容易,第一个就是你压根不知道有多少个变换规则,所以只能拿while做循环输入,这就会出现一个问题,就是while(sc.hasNext)就会进入死循环,必须重写Scanner的方法才能进行输入。第二个就是给出的样例太过于简单,要是按照给出的样例写只能拿到60-80分,因为原创 2021-03-14 09:15:34 · 76 阅读 · 0 评论 -
BFS_5:01迷宫
前言 有一个仅由数字0与1组成的n×n格迷宫。若你位于一格0上,那么你可以移动到相邻4格中的某一格1上,同样若你位于一格1上,那么你可以移动到相邻4格中的某一格0上。 你的任务是:对于给定的迷宫,询问从某一格开始能移动到多少个格子(包含自身)。 输入格式 第1行为两个正整数n,m。 下面n行,每行n个字符,字符只可能是0或者1,字符之间没有空格。 接下来m行,每行2个用空格分隔的正整数i,ji,j,对应了迷宫中第i行第j列的一个格子,询问从这一格开始能移动到多少格。 输出格式 m行,对于每个询问输出相应答案原创 2021-03-13 22:32:09 · 134 阅读 · 0 评论 -
BFS_4:奇怪的电梯
BFS_4:奇怪的电梯 有一个n*m的棋盘(1<n,m<=400),在某个点上有一个马,要求你计算出马到达棋盘上任意一个点最少要走几步 输入格式 一行四个数据,棋盘的大小和马的坐标 输出格式 一个n*m的矩阵,代表马到达某个点最少要走几步(左对齐,宽5格,不能到达则输出-1) 3 3 1 1 0 3 2 3 -1 1 2 1 4 import java.util.LinkedList; import java.util.Queue;原创 2021-03-13 22:26:05 · 92 阅读 · 0 评论 -
BFS_3:马的遍历
BFS_3:马的遍历 有一个n*m的棋盘(1<n,m<=400),在某个点上有一个马,要求你计算出马到达棋盘上任意一个点最少要走几步 输入格式 一行四个数据,棋盘的大小和马的坐标 输出格式 一个n*m的矩阵,代表马到达某个点最少要走几步(左对齐,宽5格,不能到达则输出-1) 输入 3 3 1 1 输出 0 3 2 3 -1 1 2 1 4 问题分析 马的走法想必都知道,然后就要确定行走的坐标xx和yy。 要注意的点是:要是马走不到的点原创 2021-03-13 21:54:41 · 98 阅读 · 0 评论 -
BFS_2:迷宫最短路径
BFS_2:迷宫最短路径 输入样例: N=5,M=5 1 0 1 1 1 0 0 1 1 0 1 0 1 1 1 0 0 1 1 1 0 0 0 1 1 5 (5,3)->(4,3)->(3,3)->(2,3)->(1,3) 问题分析: 该题为经典题,典型的BFS搜索最短路径,比较要注意的是pre成员属性,用于记录当前节点的前一个节点,从而寻找最短的路径。 二、使用步骤 import java.util.*; class Node{ public原创 2021-03-13 21:37:52 · 77 阅读 · 0 评论 -
BFS_1:填涂颜色
BFS_1:填涂颜色 由数字0组成的方阵中,有一任意形状闭合圈,闭合圈由数字1构成,围圈时只走上下左右4个方向。现要求把闭合圈内的所有空间都填写成2.例如:6×6的方阵(n=6),涂色前和涂色后的方阵如下: 输入格式 每组测试数据第一行一个整数n(1≤n≤30) 接下来nn行,由00和11组成的n×n的方阵。 方阵内只有一个闭合圈,圈内至少有一个0。 //感谢黄小U饮品指出本题数据和数据格式不一样. 已修改(输入格式) 输出格式 已经填好数字2的完整方阵。 6 0 0 0 0 0 0 0 0 1 1 1 1原创 2021-03-13 21:16:58 · 308 阅读 · 0 评论