自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 蓝桥杯刷题练习day-7

摘要:本文讨论了一个递归函数w(a,b,c)的优化实现问题。该函数根据输入参数的不同条件返回特定值,直接递归会导致重复计算。作者通过引入三维数组res[25][25][25]存储已计算结果,避免了重复递归调用。关键优化点包括:1)将大于20的参数自动转换为20;2)使用记忆化技术存储中间结果;3)在递归终止条件后立即检查缓存。这种优化方法显著提高了计算效率,特别适用于处理大量输入的情况。文章还指出了Java中数组下标必须是int类型的限制,并提供了完整的Java实现代码。

2026-01-07 00:20:14 761

原创 蓝桥杯刷题练习

P8649 [蓝桥杯 2017 省 B] k 倍区间 - 洛谷这道题让我们判断某一段连续子区间的和是否是k的倍数,读完题目不难发现,肯定需要前缀和优化,那么子区间的和就转化为前缀和了,然后让我们求满足子区间是k的倍数的个数,也就是(s[r]-s[l-1])%k==0的个数,那么我们根据同余定理可知:s[r]%k=s[l-1]%k,问题就转化为了我们判断余数相同的个数,首先,我们可以用一个哈希存储,存储每个余数出现的次数,然后我们从从0到k-1进行循环,因为是对k取余数,那么他们的余数范围肯定落在0-k-1上

2026-01-05 11:24:37 328

原创 蓝桥杯刷题练习

可以转化为是(s[r]-s[l-1])%7==0;1:整形溢出,爆long了,因为前缀和数组越加越大,可能会出现爆long类型,我们前缀和数组要用long优化,然后就又有新问题出现了,我在计算num1=(int)(s[i]%7)写成了num1=(int)s[i]%7,这两种写法区别还是很大的,比如第一种是先对s[i]取余然后才转换成int的,因为我哈希表存储的是Integer,第二种写法是先把s[i]转换成int,在取余,那么第二种写法就会导致对s[i]的取值出现错误,同余定理:(a-b)%num=0。

2026-01-05 00:01:01 376 2

原创 蓝桥杯刷题

这道题让我们分析最小交换次数,求满足最小交换次数,这些字符串都是都满足abababab的形式,当然也可以满足babababa的形式,我们可以观察规律,发现对于第一种情况,奇数位都是a,偶数位都是b,对于第二种情况,奇数位都是b,偶数位都是a,我们可以统计对于第一种情况,比如:aaabbb,第二位a,不满足,第五位b,不满足,我们这个可以凑一对,交换一次,因此可以得到规律,一对情况不满足,就是交换一次,我们可以用一个计数器,去统计不满足情况的字符串个数,然后除以2;

2025-12-31 11:19:56 219

原创 蓝桥杯刷题练习

查找部分,我们可以先初始化一个最大差值,因为我们要寻找差值最小的就是最接近的,所以我们初始化一个最大差值,然后遍历set集合,如果找到比它差值小的,我们就更新最小差值,同时还要更新当前选择的木材长度,但下来可能好多人会忽略这个要求:如果有多根木材符合需求,我们要选择最短的,这是还需要判断如果差值相等的情况下,我们要去选择最短的那一根。// 输出: [1, 2, 3, 5, 8]// 3. higher(E e) - 严格大于e的最小元素。// 2. floor(E e) - 小于等于e的最大元素。

2025-12-30 16:36:49 942

原创 实训Day1-4

另一种是给出姓名,输出对应的选课名称,如果没有对应的姓名,则我们认为是系统出现故障,输出Error2,如果有对应的姓名但没有进行选课,则输出Not found。student_id:学生学号,是外键,指向 student 表中的 student_id(均为数字,不超过 100 个字符,保证学号各不相同)。然后根据题目,要求,判断op==1的情况时,判断根据学号是否存在学生,存在的话就直接输出学生的姓名,不存在返回Error1;我们先new一个储存姓名:学号,学号:姓名,学号:课程的键值对。

2025-06-13 11:20:39 352

原创 实训Day1-4HashSet集合的运用

换句话说,即找到某个整数 iii (1≤i≤N−1)(1≤i≤N−1)(1≤i≤N−1),使 A1,A2,...,AiA_1, A_2,...,A_{i}A1​,A2​,...,Ai​ 中不同元素个数以及 Ai+1,Ai+2,...,ANA_{i+1},A_{i+2},...,A_NAi+1​,Ai+2​,...,AN​ 中不同元素个数之和最大,并输出这个最大值。i=1: 分割点在索引1后 → [1,2] 和 [2,1] → left[1] + right[2] = 2 + 2 = 4。

2025-06-13 09:44:21 1848

原创 实训Day5-1BFS搜索最短路径问题

说到这我们也需要自己定义一个pair类,处理坐标系的问题,我个人喜欢定义坐标类来处理涉及坐标的问题,对于刚开始,当队列不为空的时候先将(1,1)入队,队列不为空,在出队,判断当前出队的元素的x和y值是否满足目标x,y值。竖直向下是x轴,水平向右是y轴,对于x的偏移量有四个方向,分别是下,右,上,左,四个方向,对应偏移量是1,0,-1,0。路线如下:(1,1)→(2,1)→(3,1)→(3,2)→(3,3)→(2,3)→(2,4)→(2,5)→(3,5)(1,4) 没有合法邻居,继续处理队列中的 (2,5)

2025-06-12 18:24:34 1555 1

原创 实训做题day1-2

循环判断,如果字母是‘a’,就将其压入栈中,等待与其匹配的b,说明一点,题目要求子串,必须是ab,子串顺序也不能发生改变,如果字母是‘b’的话,且栈不为空的话说明找到与其匹配的’a’,此时我们就将与其匹配的‘a’弹出栈,如果字母是b且栈为空的话说明字母’b’没有找到与其匹配的‘a’,输出Bad,要记得判断b前没有’a’的情况,循环结束后,在判断栈是否为空,为空的话说明我们全部子串已经找到匹配,不为空的话说明未能满足全部子串符合ab。现给定一个字符串 `s`,请判断 `s` 是否是好串。

2025-06-11 11:01:17 378 1

原创 实训做题总结day1-1

题目判断是否可以构成三角形,需要满足任意两边之和大于第三边,如果不排序的话,就需要写三重循环时间复杂度过大为O(n3),排序之和,升序排序,从相邻的开始对比,时间复杂度优化到O (n log n),定义一个布尔变量T,初始化false,,标记变量,如果我们找到满足条件的,就将它变为true,如果未找到就输出No solution。第一行是一个正整数n,(3≤n≤102)n,(3\leq n \leq 10^2)n,(3≤n≤102)表示数组的元素个数。如果有多种组成三角形的元素组合,你可以输出任意一种。

2025-06-10 23:09:58 717

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除