- 博客(154)
- 收藏
- 关注
原创 蓝桥杯 11. 保卫国王大道
题目描述了一个树结构的城镇网络,要求选择最少的城镇作为军营,以保护所有连接城镇的国王大道。通过动态规划的方法,可以解决这个问题。具体思路是:对于每个节点,如果选择它作为军营,则其子节点可以选择或不选择;如果不选择它,则其子节点必须选择。通过递归遍历树,计算每个节点的两种状态(选择或不选择)下的最小军营数,最终得到全局的最小值。样例输入中,7个城镇的树结构需要至少3个军营来保护所有道路。
2025-05-22 17:29:52
428
原创 蓝桥杯 10. 安全序列
小蓝是工厂的安全工程师,负责在一条直线上安放油桶。直线上有 n 个空位,每两个油桶之间至少需要 k 个空位隔开。任务是计算有多少种合法的放置方案,结果对 10^9 + 7 取模。输入包括 n 和 k,输出为方案数。通过动态规划解决,dp[i] 表示前 i 个空位的方案数,状态转移方程为:dp[i] = dp[i - k - 1] + dp[i - 1],分别表示在第 i 个位置放油桶和不放油桶的情况。最终输出 dp[n]。
2025-05-22 15:47:53
440
原创 蓝桥杯 3. 涂色
题目要求将一块长度为 n 的木板涂成目标颜色字符串,每次可以涂一段连续区域,后涂的颜色会覆盖之前的颜色,求最少的涂色次数。通过动态规划解决,dp[i][j] 表示将区间 [i, j] 涂成目标颜色所需的最少次数。初始化时,单个字符的涂色次数为 1。对于区间 [i, j],如果两端字符相同,则涂色次数等于去掉一端后的区间涂色次数;否则,遍历所有可能的分割点,取最小值。最终输出 dp[0][n-1] 即为最少涂色次数。
2025-05-22 12:59:03
412
原创 经典算法 求C(N, K) % mod,保证mod是质数
本文介绍了两种计算组合数C(N, K)模质数mod的方法。第一种方法使用乘法逆元,适用于N, K ≤ 1,000,000且mod ≤ 1,000,000,009的情况。通过预处理阶乘和费马小定理求逆元,快速计算组合数。第二种方法使用卢卡斯定理,适用于N, K ≤ 10^18且mod ≤ 1,000,000的情况。卢卡斯定理通过递归将大数问题转化为小数问题,结合乘法逆元进行计算。两种方法均保证了mod为质数,并通过代码实现展示了具体计算过程。
2025-05-17 20:38:25
356
原创 蓝桥杯 17. 修改数组
题目要求将给定数组中的重复整数修改为不重复的整数。具体方法是:从第二个元素开始,检查当前元素是否在前面的元素中出现过。如果出现过,则将该元素加1,直到它不再与前面的元素重复。最终输出修改后的数组。代码使用了并查集(Disjoint Set Union, DSU)数据结构来高效地找到每个元素的最小可用值。通过初始化一个大小为1000001的数组mp,并利用myfind函数找到每个元素的最小可用值,最终输出修改后的数组。该算法的时间复杂度为O(N),适用于大规模数据处理。
2025-05-14 13:12:07
466
原创 蓝桥杯 16. 外卖店优先级
题目描述了一个外卖系统中N家外卖店的优先级管理问题。每家店的初始优先级为0,随着时间的推移,优先级会根据订单情况动态调整:无订单时优先级减1,有订单时优先级加2。当优先级大于5时,店铺会被加入优先缓存;当优先级小于等于3时,店铺会被移除优先缓存。给定T时刻内的M条订单信息,要求计算T时刻时有多少家店铺在优先缓存中。 解题思路是通过优化时间戳处理,避免逐个时间戳模拟,从而降低时间复杂度。具体实现中,首先将每个店铺的订单时间按时间顺序排序,然后通过计算时间间隔来快速更新优先级,最终判断店铺是否在优先缓存中。代码
2025-05-13 11:29:47
621
原创 蓝桥杯 11.日志统计
题目要求统计在任意长度为D的时间段内收到不少于K个赞的帖子,这些帖子被称为“热帖”。输入包括N行点赞日志,每行包含时间戳ts和帖子编号id。通过按时间排序后,使用队列维护每个帖子的点赞时间,当某个帖子的点赞队列达到K个时,检查最早和最新点赞的时间差是否小于D。若满足条件,则该帖子为热帖。最终按升序输出所有热帖的编号。
2025-05-13 10:22:29
351
原创 蓝桥杯 10. 全球变暖
全球变暖导致海平面上升,科学家预测未来几十年,岛屿边缘的陆地将被海水淹没。题目给定一张 N x N 像素的海域照片,其中 . 表示海洋,# 表示陆地。岛屿由上下左右相连的陆地组成。要求计算未来会被完全淹没的岛屿数量。通过深度优先搜索(DFS)算法标记岛屿,并检查每个岛屿的陆地像素是否全部与海洋相邻。如果岛屿的所有陆地像素都会被淹没,则该岛屿被完全淹没。最终输出被完全淹没的岛屿数量。
2025-05-13 10:11:41
451
原创 蓝桥杯 20. 倍数问题
那么c % K = K - d - e 或者 2 * K - d - e或者3 * K - d - e…根据(d+ e + c % K) % K = 0,并且数据的值都是正数。那么(a % K + b % K + c % K) % K = 0,也就是说d + e + c % K = n * K(n >= 1),也就是0 <= n * K - d - e <= K - 1,假设a % K = d, b % K = e,显然,0 <= c % K <= K - 1,假设(a + b + c) % K = 0,
2025-05-07 13:34:25
945
原创 蓝桥杯 19. 植树
小明和朋友们一起去郊外植树,他们带了一些在实验室中精心研究出的小树苗。一共有n个人,每个人挑选了一个适合植树的位置,一共n个位置。每人准备在自己的位置种下一棵树苗。但他们遇到一个问题:有的树苗比较大,而有的位置太近,如果同时种下会“撞到一起”。我们将每棵树视为一个圆,圆心是植树的位置,半径为树的半径。如果两棵树的圆相交(相切不算),那么这两棵树不能同时种下,称为发生。nnx y rxyr输出一个整数,表示在不冲突的情况下,。因为每棵树的面积为π * r²,所以答案是总面积除以 π 后的整数。
2025-05-05 21:49:03
425
原创 蓝桥杯 18. 积木
假设某个坐标有9个格子,那么该坐标,1水位淹没一个,2水位淹没2个…9水位淹没9个,10水位还是淹没九个,11水位还是淹没9个。小明的城堡是立体的,可以将积木垒在其他积木上。也就是对于[1,9]操作ans[i] += i,对于大于9的部分,操作ans[i] += 9;为了方便,小明使用的是大小相同的正方体积木,并将其搭建在一个。小明的城堡可以通过一个二维数组来表示,数组中的每个数表示该位置积木的层数。这个城堡的南面和东面是空地,西北面是大房子,西北角是高塔,东北角是车库。时,每个高度下被水淹没的积木块数。
2025-05-05 15:34:11
635
原创 蓝桥杯 17. 通电
个村庄之间都没有电线相连,小明主要要做的是架设电线连接这些村庄,使得所有村庄都直接或间接地与发电站相通。作为一名电力建设者,小明正在帮助一带一路上的国家通电。其中 (x1, y1, h1) 和 (x2, y2, h2) 分别是两个村庄的坐标和高度。个村庄通电,其中 1 号村庄正好可以建立一个发电站,所发的电足够所有村庄使用。小明测量了所有村庄的位置(坐标)和高度。把所有边都连接起来,然后在这个完全图里面找最小生成树。请帮助小明计算使所有村庄通电所需的最小费用。输出一行一个实数,表示最小通电费用,
2025-05-05 11:44:12
577
原创 蓝桥杯 摆动序列
如果一个序列的奇数项都比前一项大,偶数项都比前一项小,则称为一个。输出一个整数,表示答案。由于答案可能很大,请输出答案。之间的正整数的摆动序列一共有多少个。输入一行包含两个整数。
2025-05-03 18:39:01
596
原创 经典算法 最小生成树(prim算法)
条边构成的无向连通子图被称为 G 的一棵生成树,其中边的权值之和最小的生成树被称为无向图 G 的最小生成树。求最小生成树的树边权重之和。如果最小生成树不存在,则输出。条边的无向图,图中可能存在重边和自环,边权可能为负数。
2025-05-03 18:08:35
294
原创 经典算法 质数数目
质数是指在大于 1 的自然数中,除了 1 和它本身以外不再有其他因数的自然数。的数字,需要判断每个数字是否为质数,并输出质数总数。实现一个算法求质数数目。输出一行,表示从 0 到。
2025-05-03 11:48:45
229
原创 经典算法 求解硬币组成问题
实现一个算法求解组成硬币问题。介绍如下:假设有面值给定的一些硬币,以及给定的总合值,问构成总合值的方法有多少种。NMNMNAi输出一行,为构成总合值的方法数。3 31 2 33。
2025-05-03 11:24:46
362
原创 经典算法 石子合并问题
在一个园形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分。试设计出一个算法,计算出将N堆石子合并成1堆最大得分和最小得分。第一行一个整数(n)1 <= n <= 100,接下来一行n个整数,表示每堆石子的个数。输出第一行最小得分,第二行最大得分。
2025-05-02 20:55:23
414
原创 蓝桥杯 16. 练功
小明每天都要练功,练功中的重要一项是梅花桩。小明练功的梅花桩排列成。小明想知道,在不掉下梅花桩的情况下,自己最少要多少步可以移动到目标。小明已经练了一段时间,他现在可以一步移动不超过。列,相邻两行的距离为 1,相邻两列的距离也为 1。输出一个整数,表示小明最少多少步可以到达目标。小明站在第 1 行第 1 列上,他要走到第。的距离(直线距离)。
2025-05-01 20:00:01
224
原创 经典算法 青蛙跳杯子
桌子上有n行m列的杯子,每个杯子与相邻杯子之间的距离为1,已知青蛙的跳跃半径为d,青蛙现在在第一行第一列的杯子上,它跳到最后一行最后一列的杯子上,最少需要跳几次?输入只有一行,分别为整数n, m和实数d。直接输出青蛙跳的最小步数。3 4 1.53,表示青蛙的一条可能路径,只要再跳3步就行。
2025-05-01 19:55:36
218
原创 蓝桥杯 7. 晚会节目单
小明发现观众对于晚会的喜欢程度与前几个节目的好看程度有非常大的关系,他希望选出的第一个节目尽可能好看,在此前提下希望第二个节目尽可能好看,依次类推。我们刚刚得出,这个题目需要频繁地区间查询最值,我们选择线段树来解决,线段树查询一次最值只要O(logn)的时间。实际上我们选了3后,只需要在3 的后面找两个数,那么4不可以选,因为凑不了两个。然而,样例不会都这么简单,肯定有些分数是重复的,具体怎么解决重复。个整数,为选出的节目的好看值,按选择顺序输出。,在所有保持顺序的选择中是字典序最大的。
2025-05-01 14:10:37
592
原创 蓝桥杯 序列计数
如果已知前两个数,后面的状态数量都是一样的,我们为了不超时,不能重复计算,所以我们只算一次后把结果存储下来,下次再次递归到这两个数直接查表就行。输出一个整数,表示答案。答案可能很大,请输出答案除以。,有多少种满足条件的序列。输入一行包含一个整数。
2025-04-30 22:54:50
400
原创 经典算法 独立任务最优调度问题
核心是划分子集,使得两组时间最大值最小。动态规划用于遍历所有可能的分配方案。使用max(A时间, B时间)表示总耗时,目标是让它尽量小。用滚动数组优化空间,时间复杂度为。要我为你把这个逻辑画成图解或流程图吗?
2025-04-30 20:57:09
818
原创 蓝桥杯 11. 最大距离
即元素下标的距离加上元素值的差的绝对值,其中。输出一行一个整数,表示元素之间最大的元素距离。给定一个数列,请找出元素之间。
2025-04-29 21:39:40
946
原创 蓝桥杯 10. 凯撒加密
凯撒密码是一种替换加密的技术,单词中的所有字母都在字母表上向后偏移 3 位后被替换成密文。给定一个单词,请使用凯撒密码将这个单词加密。输出一行,表示加密后的密文。输入一行,包含一个单词。
2025-04-29 21:21:18
532
原创 蓝桥杯 5. 拼数
给定 n 个正整数 a1, a2, …, an,你可以将它们任意排序。现要将这 n 个数字连接成一排,即令相邻数字收尾相接,组成一个数。问,这个数最大可以是多少。输出一个整数,表示答案。
2025-04-29 12:19:42
349
原创 蓝桥杯 19. 穿越雷区
X 星的坦克战车很奇怪,它必须交替地穿越正能量辐射区和负能量辐射区才能保持正常运转,否则将报废。某坦克需要从 A 区到 B 区去(A,B 区本身是安全区,没有正能量或负能量特征),怎样走才能路径最短?已知的地图是一个方阵,上面用字母标出了 A、B 区,其它区都标了正号或负号分别表示正负能量辐射区。坦克车只能水平或垂直方向上移动到相邻的区。第一行是一个整数 n,表示方阵的大小,4 ≤ n < 100。接下来是 n 行,每行有 n 个数据,可能是 A,B,+,- 中的某一个,数据间用空格分开。
2025-04-28 12:50:55
309
原创 蓝桥杯 18. 机器人繁殖
每年 X 星系都会选出 1 个新出生的机器人发往太空。也就是说,如果 X 星系原有机器人 5 个,1 年后总数是:5 + 9 = 14,2 年后总数是:5 + 9 + 17 = 31。X 星系的机器人可以自动复制自己。它们用 1 年的时间可以复制出 2 个自己,然后就失去复制能力。如果已经探测经过 n 年后的机器人总数 s,你能算出最初有多少机器人吗?输入一行两个数字 n 和 s,用空格分开,含义如上。输出一行,一个整数,表示最初有机器人多少个。然后看数据范围,必须要用double去写。
2025-04-28 10:00:25
482
原创 蓝桥杯 16. 密文搜索
福尔摩斯从 X 星收到一份资料,全部是小写字母组成。他的助手提供了另一份资料:许多长度为 8 的密码列表。福尔摩斯发现,这些密码是被打乱后隐藏在先前那份资料中的。请你编写一个程序,从第一份资料中搜索可能隐藏密码的位置。要考虑密码的所有排列可能性。snnn输出一个整数,表示每行密码的所有排列在s中匹配次数的总和。4。
2025-04-27 22:26:11
543
原创 蓝桥杯 11. 打印大X
小明希望用星号拼凑,打印出一个大 X,他要求能够控制笔画的宽度和整个字的高度。为了便于比对空格,所有的空白位置都以句点符。,表示笔画的宽度和 X 的高度,用空格分开。输出一个大 X,使用星号。
2025-04-27 20:47:28
325
原创 蓝桥杯 1. 确定字符串是否包含唯一字符
实现一个算法来识别一个字符串的字符是否是唯一的(忽略字母大小写)。若唯一,则输出 YES,否则输出 NO。
2025-04-27 20:25:30
468
原创 蓝桥杯 9.生命之树
他给每棵树的每个节点(叶子也称为一个节点)上,都标了一个整数,代表这个点的和谐值。使得这个点列中的每个点都是 S 里面的元素,且序列中相邻两个点之间有一条边相连。题目的意思就是要我们找一颗子树,使得这颗子树的权值和最大。在这个前提下,上帝希望 S 中所有节点的整数和尽量大。输出一行一个整数,表示上帝给这棵树的最大评分。这个最大的和就是上帝给生命之树的评分。在 X 森林里,上帝创建了生命之树。注意:集合 S 可以为空。
2025-04-27 16:28:40
407
原创 蓝桥杯 8. 移动距离
如果行为奇数,它在第(w - 1) - (m - (i * w) - 1)列。X 星球居民小区的楼房全是一样的,并且按矩阵样式排列。最后答案就是abs(i - k) + abs(j - l)如果行为偶数,它在第m - i * w - 1列。他在第m / (w + 1)行。(只允许水平和垂直方向移动,例如,当小区排号宽度为。当排满一行时,从下一行。,需要求出它们之间的。对于宽度为w的数字m。
2025-04-26 13:24:08
456
原创 蓝桥杯 6. 冰雹数
观察发现,这个数字会一会儿上升到很高,一会儿又降下来。就这样起起落落,但最终必定会落到。要用map记录已经算出的值,不要算第二次,否则超时。生成的新数字继续执行同样的动作,循环往复。可以看到,小冰雹序列中最高冲到了。这种过程形象地被称为。
2025-04-26 00:30:29
464
空空如也
java中实现getchar()
2024-01-21
TA创建的收藏夹 TA关注的收藏夹
TA关注的人