- 博客(12)
- 收藏
- 关注
原创 2025.7.25
该代码片段展示了三个动态规划问题的实现。第一个问题涉及计算吉他经过n次音量调整后的最大可能音量,通过检查音量变化是否在有效范围内进行状态转移。第二个问题统计使用给定砝码能称出的不同重量数,通过处理加减砝码的情况进行计数。第三个问题求解将整数m表示为四次方数之和的最小数量,采用类似完全背包的方法进行优化。三个问题都通过二维数组记录状态转移过程,其中关键点在于正确处理边界条件和状态转移方程。
2025-07-26 11:40:46
317
原创 2025.7.17
本文介绍了几个经典递归问题的解法。1. 数字倒序输出:使用递归先读入数字再倒序输出,遇到0结束;2. 爬楼梯问题:递归公式为f(n)=f(n-1)+f(n-2),表示上第n阶台阶的走法数;3. 复杂递归函数w(a,b,c):需处理多种边界条件,使用记忆化存储避免重复计算;4. 汉诺塔问题:递归移动盘子并输出步骤;5. 合法数列计数:统计以n开头且后续元素不超过前一半的数列个数,使用记忆化优化。这些问题展示了递归的基本应用和优化技巧,如记忆化存储和递推公式。
2025-07-17 21:37:11
589
1
原创 2025.7.16
这篇文章摘要介绍了几个动态规划问题的解法: 上台阶问题:计算n级台阶的走法数,每次可走1-3级。使用递推公式a[n]=a[n-1]+a[n-2]+a[n-3],初始条件a[1]=1,a[2]=2,a[3]=4。 扩展上台阶问题:每次可走1-k级,使用双重循环累加计算,结果取模100003。 昆虫繁殖问题:考虑成虫繁殖周期x和卵成长时间,递推公式为a[i]=a[i-1]+y*a[i-x-2]。 传染病模型:每轮传染x倍,n轮后的总数通过sum+=x*sum计算。 数字金字塔:从下往上动态规划,每个位置取下方两
2025-07-16 21:45:53
927
原创 2025.7.14
正妹希望尝试尽可能多的口味,所以会吃尽可能多数量的月饼(不是重量)。而且她的确有些饿了,至少总共要吃掉 Ag 的月饼才能满足。这些月饼的质量分别是 1g,2g,4g,8g,16g....后面一个是前面的 2 倍。正妹可以吃 1,2,4,16 这 4 个月饼(吃法可能不唯一)。然而正妹怕长胖,所以吃月饼不能合计超过 Bg。对于 60% 数据,1≤A,B≤100000;对于 100% 数据,1≤A,B≤263−1。对于 30% 数据,1≤A,B≤1000;共一行,包含两个数,A,B。正妹能吃到最多的数量。
2025-07-15 13:31:36
238
原创 2025.7.12
本文摘要包含四个编程题解:1. 公共交通费用计算:处理地铁和公交的优惠换乘逻辑,使用优先队列优化优惠票匹配,避免O(n^2)复杂度;2. 烟蒂兑换问题:通过循环计算用n根烟和k个烟蒂兑换新烟的总数量;3. 点阵压缩编码:将N×N的01矩阵转换为交替计数的压缩格式;4. 点阵解压缩:将压缩码还原为原始01矩阵,按行列输出。所有题解均采用高效算法处理输入输出,满足题目数据规模要求。代码示例展示了循环控制、条件判断和位运算等核心编程技巧。
2025-07-13 17:27:28
883
原创 2025.7.13
有一个整数序列,它的每个数各不相同,我们不知道它的长度是多少(即整数个数),但我们知道在某些区间中间至少有多少个整数,用区间(Li,Ri,Ci)来描述,表示这个整数序列中至少有 Ci 个数来自区间 [Li,Ri],给出若干个这样的区间,问这个整数序列的长度最少能为多少?接下来的 D 行,每行有 4 个用空格隔开的整数。第 i 行的 4 个整数 Xi,Yi,Pi,Qi,表示坐在位置 (Xi,Yi) 与 (Pi,Qi) 的两个同学会交头接耳(输入保证他们前后相邻或者左右相邻)。
2025-07-11 16:50:26
987
原创 2025.7.10
摘要:文章包含两个编程问题。第一个是"超级跳蛙"问题,要求计算青蛙跳过n个石头时消耗的最大体力值,通过排序和交替跳高低的策略实现。第二个是"恶龙砍头"问题,需要计算骑士团砍掉n个龙头的最小金币花费。两个问题都给出了输入输出格式和样例,并提供了C++代码解决方案。第一个问题使用贪心算法对石头高度排序后交替跳,第二个问题需匹配骑士能力与龙头大小。数据范围提示了变量类型的选择(如long long),并标注了边界条件处理。
2025-07-10 16:53:27
414
原创 编程启蒙3001
这是一道输出"Hello World"的基础编程题。题目要求程序不接收任何输入,直接输出字符串"helloworld"。示例代码展示了使用C++标准库的简单实现方式:通过包含<bits/stdc++.h>头文件,使用cout输出指定字符串。该题作为编程入门经典练习,重点考察基本输出语句的掌握。注意输出内容需与题目要求完全一致,建议直接复制字符串以避免拼写错误。
2025-07-09 15:19:12
209
原创 2025.7.9
摘要: 本文包含三个编程题目及其解法总结。1)统计n×m棋盘中的正方形和长方形数量,通过数学公式优化暴力枚举;2)将N×M矩阵涂成白-蓝-红条纹图案的最小涂改次数,使用双重循环遍历所有可能的分割方式;3)在R×C篮球场中寻找连续K个空位(横向或竖向)的排列方式,通过矩阵转置简化计算。所有题目均采用C++实现,并考虑了时间复杂度优化。其中第一题通过(a-1)*(b-1)公式优化,第二题采用遍历所有可能的三段分割,第三题利用矩阵转置来统一处理横竖两种情况。
2025-07-09 15:17:03
319
原创 2025.7.8
该程序实现了对学生成绩的多条件排序。首先定义包含语文、数学、英语成绩及总分、学号的结构体,然后根据总分降序排列,若总分相同则按语文成绩降序,再相同则按学号升序排序。程序输入n个学生成绩后,输出总分前5名的学号和总分。核心是利用自定义比较函数cmp实现多级排序,并通过sort函数完成排序操作。
2025-07-08 16:47:14
120
原创 冒泡,选择,快速排序
本文展示了三种经典排序算法的C++实现代码:1) 冒泡排序,通过相邻元素比较交换实现降序排列;2) 选择排序,通过查找最小值并交换实现升序排列;3) 快速排序,采用挖坑法分治策略,选取基准值后将数组分为左右两部分递归排序。每种算法都包含完整的输入输出处理,其中快速排序代码最为复杂,详细展示了挖坑法的实现过程:定义左右指针i、j,选取基准值后将数组划分为左右两部分进行递归排序。
2025-07-07 21:44:29
268
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人