
蓝桥杯 算法题合集
蓝桥杯 算法题合集
_OLi_
这个作者很懒,什么都没留下…
展开
-
蓝桥杯备赛合集(题目 + 题解)
在 N 皇后问题的解决方案中,我们是从棋盘的顶部向底部逐行放置皇后的,这意味着在任何给定时间,所有未来的行(即当前行之下的所有行)都还没有被探查或放置任何皇后。因此,检查下方行是没有意义的,因为它们总是空的。在上面的基础上n mod 4=1时,n只能等于 29 41 53 65 77 89 91 103 115 127 139,中间间隔为12(2和3和4的最小公倍数)。在上面的基础上n mod 5=4时,n只能等于 139 199 259 319,中间间隔为60 (2和3和4和5的最小公倍数)。原创 2024-04-07 22:06:08 · 458 阅读 · 0 评论 -
蓝桥杯 - 穿越雷区
【代码】蓝桥杯 - 穿越雷区。原创 2024-04-05 14:37:37 · 326 阅读 · 0 评论 -
蓝桥杯 - 玩具蛇
【代码】蓝桥杯 - 玩具蛇。原创 2024-04-03 09:42:13 · 271 阅读 · 0 评论 -
蓝桥杯 - 受伤的皇后
【代码】蓝桥杯 - 受伤的皇后。原创 2024-04-03 09:00:52 · 1434 阅读 · 0 评论 -
蓝桥杯 - 小朋友崇拜圈
【代码】蓝桥杯 - 小朋友崇拜圈。原创 2024-04-02 21:21:01 · 150 阅读 · 0 评论 -
蓝桥杯 - 走迷宫
养成好习惯,静态方法都要用到的变量提前想到定义为静态常量。经典dfs题目,需要重点掌握。原创 2024-04-02 17:54:03 · 284 阅读 · 0 评论 -
蓝桥杯 - 正则问题
【代码】蓝桥杯 - 正则问题。原创 2024-04-02 14:13:42 · 304 阅读 · 0 评论 -
蓝桥杯 - 九宫幻方
【代码】蓝桥杯 - 九宫幻方。原创 2024-04-02 09:38:47 · 295 阅读 · 0 评论 -
第十二届蓝桥杯JavaA组省赛真题 - 相乘
【代码】第十二届蓝桥杯JavaA组省赛真题 - 相乘。原创 2024-04-01 16:28:00 · 251 阅读 · 0 评论 -
第十二届蓝桥杯JavaA组省赛真题 - 左孩子右兄弟
【代码】第十二届蓝桥杯JavaA组省赛真题 - 左孩子右兄弟。原创 2024-04-01 16:09:23 · 258 阅读 · 0 评论 -
第十三届蓝桥杯JavaA组省赛真题 - 蜂巢
2.并且在Java中,static变量不能在方法内部声明,它们必须作为类的成员变量声明。1.静态方法只能访问静态变量。原创 2024-04-01 15:35:06 · 263 阅读 · 0 评论 -
第十三届蓝桥杯JavaA组省赛真题 - 求和
这,真的是,省赛真题吗...原创 2024-03-31 18:12:14 · 407 阅读 · 0 评论 -
第十三届蓝桥杯JavaA组省赛真题 - GCD
最大的最小公因数就是两数的差值。原创 2024-03-31 18:03:26 · 235 阅读 · 0 评论 -
第十三届蓝桥杯JavaA组省赛真题 - 寻找整数
在上面的基础上n mod 4=1时,n只能等于 29 41 53 65 77 89 91 103 115 127 139,中间间隔为12(2和3和4的最小公倍数)。在上面的基础上n mod 5=4时,n只能等于 139 199 259 319,中间间隔为60 (2和3和4和5的最小公倍数)。在上面的基础上n mod 3=2时,n只能等于 5 11 17 23 29,中间间隔为6(2和3的最小公倍数)。n mod 2=1时,n只能等于 1 3 5 7 9 11 13,中间的间隔为2。原创 2024-03-31 11:01:47 · 252 阅读 · 0 评论 -
第十三届蓝桥杯JavaA组省赛真题 - 青蛙过河
定义一个累和数组arr,我们可以比较arr[ i ]和arr[ l ]之间的差值看是否大于等于2倍的x,满足则证明这两点之间可以跳满所有实际过河次数,此时记录最大距离,并移动左边界 l。原创 2024-03-31 10:09:49 · 260 阅读 · 0 评论 -
第十三届蓝桥杯JavaA组省赛真题 - 裁纸刀
也就是说,横向裁剪次数为【行数 - 1】。竖向裁剪次数为【(列数 - 1) * 行数】。题目共20行22列,则次数为:4 + 19 + (21*20) = 443次。横线5裁一次,竖线6 7 8 9各裁一次,加上裁边缘的四次,共九次。先看例子,边缘必须裁四次,然后得到两行三列共六张二维码。原创 2024-03-30 17:13:24 · 268 阅读 · 0 评论 -
第十四届蓝桥杯JavaA组省赛真题 - 棋盘
f[a][b]^=1;或者f[a][b] = 1 - f[a][b];原创 2024-03-30 16:54:49 · 279 阅读 · 0 评论 -
第十四届蓝桥杯JavaA组省赛真题 - 平均
使用HashMap构造键值对存储。原创 2024-03-29 09:51:18 · 188 阅读 · 0 评论 -
第十四届蓝桥杯JavaA组省赛真题 - 互质数的个数
取模的时候就不要简写了,例如:res = res * a % mod;不要写成res *= a % mod;快速幂比较常见于数据较大的取模场景,欧拉函数感觉还是有点抽象。快速幂 + 欧拉函数。原创 2024-03-28 22:29:22 · 460 阅读 · 0 评论 -
第十四届蓝桥杯JavaA组省赛真题 - 特殊日期
【代码】第十四届蓝桥杯JavaA组省赛真题 - 特殊日期。原创 2024-03-28 21:45:29 · 566 阅读 · 0 评论 -
蓝桥杯 - 小明的背包3(多重背包)
的基础上多加一层循环进行遍历,并且dp[ j ]的式子也需要修改。多重背包问题需要在01背包问题。原创 2024-03-28 17:37:09 · 348 阅读 · 0 评论 -
蓝桥杯 - 小明的背包2(完全背包)
此时dp[2]就已经是30了,意味着物品0,被放入了两次,因为可以重复,所以需要正序遍历。所以从后往前循环,每次取得状态不会和之前取得状态重合,这样每种物品就只取一次了。需要时刻提醒自己dp[ j ]代表的含义,不然容易晕头转向。本题属于完全背包问题,背包内物品可以重复,使用动态规划。注意越界问题,且 j 需要正序遍历。dp[ j ]表示容量为 j 的背包的最大价值。为什么倒叙遍历,就可以保证物品只放入一次呢?倒叙就是先算dp[2]原创 2024-03-28 17:19:47 · 539 阅读 · 0 评论 -
蓝桥杯 - 小明的背包1(01背包)
需要时刻提醒自己dp[ j ]代表的含义,不然容易晕头转向。注意越界问题,且 j 需要从大到小遍历。dp[ j ]表示容量为 j 的背包的最大价值。本题属于01背包问题,使用动态规划。原创 2024-03-28 16:27:35 · 449 阅读 · 0 评论 -
第十二届蓝桥杯JavaB组省赛真题 - 卡片
发现如果有 k 种卡片,那么对应的最大人数是 k * ( k + 1 ) / 2,然后比较 n 和 sum 的大小即可。原创 2024-03-27 15:12:30 · 226 阅读 · 0 评论 -
第十二届蓝桥杯JavaB组省赛真题 - 货物摆放
list.size()方法返回的是int类型,所以在for循环语句上作为条件比较时,如果不强制转型,那么a,b,c都要是int类型。原创 2024-03-26 22:32:34 · 166 阅读 · 0 评论 -
第十二届蓝桥杯JavaB组省赛真题 - 最少砝码
开始以为是一道动态规划,结果是贪心(此题是找规律)原创 2024-03-26 21:51:53 · 223 阅读 · 0 评论 -
第十二届蓝桥杯JavaB组省赛真题 - 路径
需要熟练掌握最小公倍数和最大公约数的计算。原创 2024-03-26 21:31:10 · 185 阅读 · 0 评论 -
第十二届蓝桥杯JavaB组省赛真题 - 时间显示
数量级较大,需要使用long类型。原创 2024-03-26 17:51:26 · 233 阅读 · 0 评论 -
第十二届蓝桥杯JavaB组省赛真题 - 直线
5.截距公式 double b = (x2 * y1 - x1 * y2) / (x2 - x1);由b = y1 - k * x1代入 k 推导而出,但因为小数精度问题,需要人为化简。3.需要使用List装map,这样相同的x可以对应不同的y,仅使用map无法做到一对多。1.计算斜率 k 和截距 b 时,因为使用到除法,所以需要使用double类型。2.x1,x2,y1,y2需要初始化为0。4.需要使用HashSet防止重复。6.注意entry的使用。原创 2024-03-26 17:35:54 · 359 阅读 · 0 评论 -
第十二届蓝桥杯JavaB组省赛真题 - ASC
这是目前为止做到过最简单的了。原创 2024-03-26 15:56:18 · 229 阅读 · 0 评论 -
第十三届蓝桥杯JavaB组 - 最大子矩阵
注意矩阵转换为二维数组的方式即可。原创 2024-03-26 15:47:51 · 175 阅读 · 0 评论 -
第十三届蓝桥杯JavaB组省赛真题 - 最少刷题数
以中位数为基准,比中位数小的需要在一定条件下增大。需要特别考虑arr[ i ]等于中位数的情况。原创 2024-03-26 15:11:24 · 239 阅读 · 0 评论 -
第十三届蓝桥杯JavaB组省赛真题 - 求阶乘
求阶乘末尾0的个数其实就是求阶乘因子中5的个数。1.可以看出数量级比较大,需要用long。原创 2024-03-25 15:48:05 · 329 阅读 · 0 评论 -
第十三届蓝桥杯JavaB组 - 字符统计
【代码】第十三届蓝桥杯JavaB组 - 字符统计。原创 2024-03-25 15:10:25 · 357 阅读 · 0 评论 -
第十三届蓝桥杯JavaB组省赛真题 - 山
【代码】第十三届蓝桥杯JavaB组省赛真题 - 山。原创 2024-03-24 21:45:54 · 210 阅读 · 0 评论 -
第十三届蓝桥杯JavaB组省赛真题 - 星期计算
20的22次方是一个比较大的数,long和int都装不下这么大的数,因此需要使用下面的方法,如果 a, b, p 都是整数,且 p 是正数,那么:(a * b) % p = (a % p * b % p) % p。使用BigInteger(记得引包)比较值的时候需要用compareTo。原创 2024-03-24 18:38:43 · 287 阅读 · 0 评论 -
第十四届蓝桥杯JavaB组省赛真题 - 蜗牛
因为需要判断上一个竹杠传送门过来后是在当前竹杠传送门上分还是下方,在当前竹杠传送门上分就需要向下移动,否则反之。数组a的下标是从一开始的,而数组b的下标是从二开始的。原创 2024-03-22 15:57:21 · 392 阅读 · 0 评论 -
第十四届蓝桥杯JavaB组省赛真题 - 阶乘求和
所以我们只需要找到从第几个数的阶乘开始乘以了10^9即可,所以说从100开始(实际上最少可以从40左右开始,40及其之后的数字都可以,但我们不可能一下子的精确的通过估算找到40这个数,所以可以取大一些,不过是时间长了点,结果是没问题的),后面的数的阶乘就可以直接省略了。求获取结果的后九位数字,需要对10^9取余,因为202320232023这个数字的阶乘太大,必须要减少计算量,因为当一个整数乘以10^9后对其取余,那么结果都为0。/ 10^9考虑前九位,% 10^9保留后9位。原创 2024-03-22 09:43:18 · 698 阅读 · 0 评论 -
第十四届蓝桥杯JavaB组省赛真题 - 矩形总面积
测试用例范围比较大,所以全部用long类型,如果用int类型只能通过60%,建议在内存和运行时间允许的情况下,比赛题都用long。重点在于计算相交的面积,这里找的两个相交点是左上角(m1,n1)和右下角(m2,n2)原创 2024-03-21 22:10:28 · 486 阅读 · 0 评论 -
第十四届蓝桥杯JavaB组省赛真题 - 幸运数字
【代码】幸运数字(第十四届蓝桥杯JavaB组省赛真题)原创 2024-03-21 17:36:06 · 598 阅读 · 0 评论