![](https://img-blog.csdnimg.cn/54192e3a821c471bb35795e475b18d67.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
蓝桥杯
文章平均质量分 57
蓝桥杯
爱敲代码的三毛
不要因为走得远就忘记当初为什么出发。
展开
-
蓝桥杯:九宫重排(Java满分解法)
题目如下图的九宫格中,放着 1 ~ 8 的数字卡片,还有一个格子空着。与空格子相邻的格子中的卡片可以移动到空格中。 经过若干次移动,可以形成图 2 所示的局面。我们把上图的局面记为:12345678.把下图的局面记为:123.46758显然是按从上到下,从左到右的顺序记录数字,空格记为句点。题目的任务是已知九宫的初态和终态,求最少经过多少步的移动可以到达。如果无论多少步都无法到达,则输出 -1。输入描述输入第一行包含九宫的初态,第二行包含九宫的终态。输出描述输出最少的步数,如果不存在方原创 2022-05-22 22:07:17 · 961 阅读 · 0 评论 -
蓝桥杯真题:调手表(Java)
题目思路从0开始搜索,如果当前时间+1或者+k大于等于n就要对n取余,所以每次加都对n取余每次相加的结果都用set去重,如果是第一次出现就加入队列继续相加当队列为空的时候,就是从一个时间到另一时间的最多要按的次数,这里是从0开始计数的所以结果要减一代码import java.util.*;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(Sy原创 2022-05-22 16:19:08 · 476 阅读 · 0 评论 -
洛谷 P1162 填涂颜色(Java)
文章目录填涂颜色题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1思路代码填涂颜色题目描述由数字000组成的方阵中,有一任意形状闭合圈,闭合圈由数字111构成,围圈时只走上下左右444个方向。现要求把闭合圈内的所有空间都填写成222.例如:6×66 \times 66×6的方阵(n=6n=6n=6),涂色前和涂色后的方阵如下:0 0 0 0 0 00 0 1 1 1 10 1 1 0 0 11 1 0 0 0 11 0 0 0 0 11 1 1 1 1 10 0 0 0原创 2022-05-22 15:42:55 · 156 阅读 · 0 评论 -
洛谷 P1605 迷宫
题目给定一个N*M方格的迷宫,迷宫里有T处障碍,障碍处不可通过。给定起点坐标和终点坐标,问: 每个方格最多经过1次,有多少种从起点坐标到终点坐标的方案。在迷宫中移动有上下左右四种方式,每次只能移动一个方格。数据保证起点上没有障碍。输入格式第一行N、M和T,N为行,M为列,T为障碍总数。第二行起点坐标SX,SY,终点坐标FX,FY。接下来T行,每行为障碍点的坐标。输出格式给定起点坐标和终点坐标,问每个方格最多经过1次,从起点坐标到终点坐标的方案总数。思路dfs直接搜索当前位置的上下左右,搜索过后原创 2022-05-22 15:33:25 · 116 阅读 · 0 评论 -
蓝桥杯真题:玩具蛇(Java)
题目小蓝有一条玩具蛇,一共有 1616 节,上面标着数字 11 至 1616。每一节都是一个正方形的形状。相邻的两节可以成直线或者成 9090 度角。小蓝还有一个 4 × 44×4 的方格盒子,用于存放玩具蛇,盒子的方格上依次标着字母 AA 到 PP 共 1616 个字母。小蓝可以折叠自己的玩具蛇放到盒子里面。他发现,有很多种方案可以将玩具蛇放进去。下图给出了两种方案:请帮小蓝计算一下,总共有多少种不同的方案。如果两个方案中,存在玩具蛇的某一节放在了盒子的不同格子里,则认为是不同的方案。思路原创 2022-05-22 15:22:57 · 354 阅读 · 0 评论 -
牛客月赛:跳马游戏(Java)
题目链接:跳马游戏来源:牛客网给定一个n*mn∗m大小的象棋棋盘,,马在一点(a,b)(a,b),马想到达点(x,y)(x,y),可惜马每走一步便需要消耗一点能量,它不想消耗多余无用的能量,于是他想知道从(a,b)(a,b)到(x,y)(x,y)最少需要消耗多少能量。注意:马不能走出象棋棋盘。输入描述第一行给出两个值n,m(1<=n,m<=400)n,m(1<=n,m<=400)第二行给出马的初始位置(a,b)(a,b),保证(a,b)(a,b)在棋盘内。第三行给原创 2022-05-22 14:41:49 · 435 阅读 · 0 评论 -
牛客月赛:走出迷宫(Java)
题目链接:走出迷宫来源:牛客网小明现在在玩一个游戏,游戏来到了教学关卡,迷宫是一个N*M的矩阵。小明的起点在地图中用“S”来表示,终点用“E”来表示,障碍物用“#”来表示,空地用“.”来表示。障碍物不能通过。小明如果现在在点(x,y)处,那么下一步只能走到相邻的四个格子中的某一个:(x+1,y),(x-1,y),(x,y+1),(x,y-1);小明想要知道,现在他能否从起点走到终点。输入描述本题包含多组数据。每组数据先输入两个数字N,M接下来N行,每行M个字符,表示地图的状态。数据范原创 2022-05-22 14:32:46 · 516 阅读 · 0 评论 -
二分查找+二分答案(Java)
文章目录二分查找做法下标问题边界问题图解代码实现复杂度分析二分查找变形1. 求满足条件的最小值(后缀)2. 求满足条件的最大值(前缀)3. 求最短子序列小结4. 大于x的平方数5.二分浮点数二分答案常规做法引入题目小结二分查找二分查找也叫折半查找,在一个有序(递增或者递减)的数列里寻找一个满足要求的数字做法如果我们要在一个有单调性的数组里查找某个数target,可以通过当前区间的最左边位置 left 和最右边位置right计算出中间位置 mid,再拿mid位置的元素和要找的元素 target 元素原创 2022-05-16 17:32:01 · 533 阅读 · 0 评论 -
蓝桥杯刷题笔记:二分查找
普通二分查找代码循环static int find(int[] arr,int target) { int left = 0; int right = arr.length-1; int mid = 0; while (left <= right) { mid = (right-left)/2 + left; if (arr[mid] > target) {原创 2022-05-12 11:48:53 · 243 阅读 · 0 评论 -
求子序列(状态压缩)
子序列子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。比如 [1,4,5] 就是 [1,2,3,4,5] 的子序列状态压缩状态压缩就是通过二进制枚举子集的方法,举几个列子:假设要求 [a]的子序列,那么只有一个 a如果要求 [a,b] ,有 {b},{a},{a,b} 有3种如果是 [a,b,c] 的子序列 一共有 {c},{b},{b,c},{a},{a,c},{a,b},{a,b,c},一共有7个子序列那么可以得出 长度为 n 的字符串,它的子序列个数原创 2022-05-12 09:22:48 · 626 阅读 · 0 评论 -
快速幂(快速幂取余)
引入公式(a*b) %c = ((a % c)*(b % c)) %c普通求幂的解法 public static int pow(int x,int n) { int result = 1; for (int i = 0; i < n; i++) { result = result * x; } return result; }这种写法的时间复杂度为 O(n),使用快速幂就能将时间复杂度降到原创 2022-05-10 18:36:26 · 1100 阅读 · 0 评论 -
汉诺塔问题
汉诺塔问题概念汉诺塔(Tower of Hanoi),又称河内塔,是一个源于印度古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘总共有3根柱子,起始柱、目标柱、辅助柱每次只能移动最顶端的一个盘子大的盘子必须放在小盘子的下面动图展示两个盘子三个盘子移动过程是如果是一个圆盘可以直接从起原创 2022-05-09 22:47:18 · 1554 阅读 · 1 评论 -
洛谷P3370 【模板】字符串哈希(Java)
题目描述如题,给定 NN 个字符串(第 ii 个字符串长度为 M_iM i ,字符串内包含数字、大小写字母,大小写敏感),请求出 NN 个字符串中共有多少个不同的字符串。输入格式第一行包含一个整数 NN,为字符串的个数。接下来 NN 行每行包含一个字符串,为所提供的字符串。输出格式输出包含一行,包含一个整数,为不同的字符串个数。输入输出样例示例1:输入5abcaaaaabcabcc12345输出4样例说明样例说明:样例中第一个字符串(abc)和第三个字符串(a原创 2022-05-09 18:28:46 · 292 阅读 · 1 评论 -
洛谷 P1739 表达式括号匹配(Java)
题目描述假设一个表达式有英文字母(小写)、运算符(+,—,*,/)和左右小(圆)括号构成,以“@”作为表达式的结束符。请编写一个程序检查表达式中的左右圆括号是否匹配,若匹配,则返回“YES”;否则返回“NO”。表达式长度小于255,左圆括号少于20个。输入格式一行:表达式输出格式一行:“YES” 或“NO”输入输出样例示例1:输入:2*(x+y)/(1-x)@输出:YES示例2:输入:(25+x)(a(a+b+b)@输出:NO思路直接用一个栈考虑如果是原创 2022-05-09 18:21:46 · 593 阅读 · 1 评论