![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
广搜
请刷新后重试
这个作者很懒,什么都没留下…
展开
-
移动字母(java)
题目描述 2x3=6个方格中放入ABCDE五个字母,右下角的那个格空着。如下图所示。 A B C D E 和空格子相邻的格子中的字母可以移动到空格中,比如,图中的C和E就可以移动,移动后的局面分别是: A B D E C 和 A B C D E 为了表示方便,我们把6个格子中字母配置用一个串表示出来,比如上边的两种局面分别表示为: ABDEC ABCDE 题目的要求是:请编写程序,由用户输入若干表示局面的串,程序通过计算,输出是否能通过对初始状态经过若干次移动到达该状态。可以实现输出1,否则输出0.原创 2020-08-28 20:38:25 · 748 阅读 · 0 评论 -
营救天使(java)
题目描述 天使被恶魔抓住,关在N行M列的矩阵的方格中,我们现在要从起始方格出发,去营救天使。我们每次只能在矩阵中往上或往下或往左或往右移动一格,且需耗时1秒。有些方格中有障碍物,不能进入;有些方格中有小鬼守卫,把它杀死还需另外耗时1秒。我们需要计算,到达天使所在方格的最少秒数。 输入 第1行是2个整数N、M,分别表示矩阵的行数和列数。 接下去是N行,每行M个字符,其中.表示可以进入的普通方格,x表示有小鬼守卫的方格,#表示有障碍物的方格,r表示起始方格,a表示天使所在方格。 输出 如果能够营救,输出最少秒.原创 2020-08-28 19:29:44 · 291 阅读 · 0 评论 -
胜利大逃亡(java)
题目描述 Ignatius被魔王抓走了,有一天魔王出差去了,这可是Ignatius逃亡的好机会. 魔王住在一个城堡里,城堡是一个ABC的立方体,可以被表示成A个B*C的矩阵,刚开始Ignatius被关在(0,0,0)的位置,离开城堡的门在(A-1,B-1,C-1)的位置,现在知道魔王将在T分钟后回到城堡,Ignatius每分钟能从一个坐标走到相邻的六个坐标中的其中一个.现在给你城堡的地图,请你计算出Ignatius能否在魔王回来前离开城堡(只要走到出口就算离开城堡,如果走到出口的时候魔王刚好回来也算逃亡成.原创 2020-08-28 18:47:50 · 259 阅读 · 0 评论 -
马跳的步数(java)
题目描述 8*8的国际象棋棋盘上,行号为a到h,列号为1到8,根据马的起始位置和目标位置,请你编程计算马跳的最小步数。 输入 若干行,每行包含4个字符,前2个字符表示起始位置的行号与列号,后2个字符表示目标位置的行号与列号。最后一行的为i0i0(这行不需要计算马跳的步数)。 输出 若干行整数,对每行输入,输出一个整数,表示马跳的最小步数。 样例输入 e2e4 a1b2 b2c3 a1h8 a1h7 h8a1 b1c3 f6f6 i0i0 样例输出 2 4 2 6 5 6 1 0 思路 从起始位置开始沿着.原创 2020-08-28 18:14:50 · 535 阅读 · 0 评论 -
山峰和山谷(java)
标题【题目描述】 给定一个 n×n 的网格状地图,每个方格 (i,j)有一个高度 wij 。如果两个方格有公共顶点,则它们是相邻的。 定义山峰和山谷如下: 均由地图上的一个连通块组成; 所有方格高度都相同; 周围的方格(即不属于山峰或山谷但与山峰或山谷相邻的格子)高度均大于山谷的高度,或小于山峰的高度。 求地图内山峰和山谷的数量。特别地,如果整个地图方格的高度均相同,则整个地图既是一个山谷,也是一个山峰。 【输入】 第一行一个整数n(2≤n≤1000),表示地图的大小。 接下来 n 行每行 n 个整数.原创 2020-08-25 16:45:36 · 737 阅读 · 0 评论 -
马的遍历(java)
题目描述 有一个n*m的棋盘(1<n,m<=400),在某个点上有一个马,要求你计算出马到达棋盘上任意一个点最少要走几步 输入格式: 一行四个数据,棋盘的大小和马的坐标 输出格式: 一个n*m的矩阵,代表马到达某个点最少要走几步(左对齐,宽5格,不能到达则输出-1) 输入样例: 3 3 1 1 输出样例: 0 3 2 3 -1 1 2 1 4 思路 从起始点开始沿马能走的八个方向广搜即可,如果超过棋盘的范围或是已访问过的坐标就不再访问,每访问一个坐标将步长记.原创 2020-08-25 15:04:03 · 813 阅读 · 2 评论 -
流感传染(java)
标题【题目描述】 有一批易感人群住在网格状的宿舍区内,宿舍区为n*n的矩阵,每个格点为一个房间,房间里可能住人,也可能空着。在第一天,有些房间里的人得了流感,以后每天,得流感的人会使其邻居传染上流感,(已经得病的不变),空房间不会传染。请输出第m天得流感的人数。 标题【输入】 第一行一个数字n,n不超过100,表示有n*n的宿舍房间。 接下来的n行,每行n个字符,’.’表示第一天该房间住着健康的人,’#’表示该房间空着,’@’表示第一天该房间住着得流感的人。 接下来的一行是一个整数m,m不超过100。 【.原创 2020-08-25 00:22:56 · 408 阅读 · 0 评论 -
细胞(java)
【题目描述】 一矩形阵列由数字0到9组成,数字1到9代表细胞,细胞的定义为沿细胞数字上下左右还是细胞数字则为同一细胞,求给定矩形阵列的细胞个数。如下阵列,有4个细胞: 4 10 0234500067 1034560500 2045600671 0000000089 【输入】 第一行为矩阵的行n和列m; 下面为一个n×m的矩阵。 【输出】 细胞个数。 【输入样例】 4 10 0234500067 1034560500 2045600671 0000000089 【输出样例】 4 思路 将矩阵从头到尾遍历一.原创 2020-08-25 00:18:40 · 241 阅读 · 0 评论 -
Knight Moves(走马问题 java)
【题目描述】 输入n代表有个n×n的棋盘,输入开始位置的坐标和结束位置的坐标,问一个骑士朝棋盘的八个方向走马字步,从开始坐标到结束坐标可以经过多少步。 【输入】 首先输入一个n,表示测试样例的个数。 每个测试样例有三行。 第一行是棋盘的大小L(4≤L≤300); 第二行和第三行分别表示马的起始位置和目标位置(0…L−1)。 【输出】 马移动的最小步数,起始位置和目标位置相同时输出0。 【输入样例】 3 8 0 0 7 0 100 0 0 30 50 10 1 1 1 1 【输出样例】 5 28 0 思路.原创 2020-08-25 00:12:04 · 752 阅读 · 0 评论 -
抓住那头牛(java)
【题目描述】 农夫知道一头牛的位置,想要抓住它。农夫和牛都位于数轴上,农夫起始位于点N(0≤N≤100000),牛位于点K(0≤K≤100000)。农夫有两种移动方式: 1、从X移动到X-1或X+1,每次移动花费一分钟 2、从X移动到2*X,每次移动花费一分钟 假设牛没有意识到农夫的行动,站在原地不动。农夫最少要花多少时间才能抓住牛? 【输入】 两个整数,N和K。 【输出】 一个整数,农夫抓到牛所要花费的最小分钟数。 【输入样例】 5 17 【输出样例】 4 思路 从+1、-1、*2三个方向进行广搜即可.原创 2020-08-25 00:04:40 · 299 阅读 · 0 评论 -
广度优先遍历
思想概述 广度优先搜索(Breadth_First_Search),又称广度优先搜索,简称BFS 现有一把钥匙丢在家里需要寻找,如果说深度优先搜索是把家中每个房间按顺序都彻底搜查一遍,例如先把卧室的桌子柜子抽屉床底下甚至是衣柜顶都找一遍,然后再去厨房仔细搜索还是没有再去厕所,最后在厕所的洗手台上找到了,那么这个时候显然用深度搜索是不合理的,如果一开始只是把每个房间都简单的搜查一遍难么很快就能在洗手台上找到钥匙 那么广度优先搜索就是先把每个房间显眼的地方先搜查一遍,如果没有找到再把每个房间比较常用的家具附近查原创 2020-08-24 23:57:22 · 226 阅读 · 0 评论