- 博客(16)
- 收藏
- 关注
原创 FatMouse‘ Trade
摘要: 该程序解决FatMouse的兑换问题。首先读取M和N,分别表示FatMouse拥有的猫粮数量和可兑换的房间数。对于每个房间,计算兑换比例E=J/F(J为JavaBean数量,F为所需猫粮),并按E从大到小排序。随后,FatMouse优先兑换比例高的房间,直到猫粮耗尽或兑换完所有房间。最后输出最多能获得的JavaBean数量,保留三位小数。核心思路是贪心算法,通过优化兑换顺序实现最大收益。
2025-09-01 20:08:03
116
原创 Elevator
该程序计算电梯运行总时间,包含以下规则:上升每层6秒,下降每层4秒,每站停留5秒。输入包含多组测试数据(以0结束),每组给出楼层数N和访问的楼层序列。程序通过遍历楼层序列,累加移动时间(根据升降方向分别计算)和停留时间(N*5秒),最后输出总时间。时间复杂度为O(N),适用于大规模数据。
2025-08-29 21:54:55
118
原创 分治算法之最近点对
这篇文章介绍了一种分治算法来求解平面最近点对问题,时间复杂度为O(nlogn)。算法首先对点按x坐标排序,然后递归地将平面划分为左右两半,分别计算左右半区的最小距离。接着检查中线附近可能存在的更小距离点对,通过按y坐标排序并比较相邻点来优化计算。最终返回左右半区和中线区域的最小距离作为结果。代码使用C++实现,包含输入处理和核心递归函数。
2025-08-28 22:33:59
158
原创 Tick and Tick
摘要:作者最初尝试通过每秒循环计算时针、分针和秒针之间的角度差来判断"快乐时间",但因超时未能通过。随后参考了另一篇文章的思路,改为计算三个指针两两之间满足角度条件的区间交集,从而优化了算法效率。两种方法分别展示了暴力枚举和数学分析的不同解题思路,后者通过数学推导避免了不必要的循环计算,最终成功解决问题。
2025-08-26 19:43:02
218
原创 Number Sequence
该程序通过分析斐波那契数列模7运算的周期性规律,优化大数计算。程序首先检测数据循环起始点,然后利用循环特性快速定位结果。对于n=1或2直接输出1,其他情况通过模运算在循环字符串中找到对应位置的值。核心思路是发现周期性后利用循环特性避免重复计算,提高效率。
2025-08-22 23:23:19
169
原创 Max Sum
本文介绍了使用动态规划解决最大连续子序列和问题的方法。通过构建前缀和数组S,将问题转化为寻找S[j]-S[i]的最大值。算法维护最小前缀和MIN,并在遍历时更新最优解。代码实现中需要注意下标处理,最终输出最大和及其起始和结束位置。该方法优化了穷举法的时间复杂度,适用于大规模数据。
2025-08-22 19:14:42
158
原创 动态规划之最长不下降(最长上升)子序列
本文介绍了求解最长不下降子序列(LIS)的两种算法。朴素算法采用动态规划,时间复杂度为O(n²),通过比较元素值更新dp数组。更高效的贪心+二分算法将时间复杂度降至O(nlogn),利用二分查找维护递增序列。文中提供了三种实现代码,包括基础版本和带路径回溯的版本,均能正确输出LIS长度。其中第三种实现还通过栈结构反向输出具体的LIS序列。这些算法适用于需要寻找最长有序子序列的场景。
2025-08-21 20:46:50
126
原创 A + B Problem II
再用剩下的部分和进位计算,即 99 + 1。先计算位数相同的部分,即 9 + 1。如果最后还剩下进位也要算上,即 1。模拟加法,如计算 999 + 1。
2025-08-18 21:47:05
172
原创 Sum Problem
利用求和公式(n+1)*n/2来求和,一开始是先算乘法,发现提交一直错误,估计是溢出了。改成先算除法,再算乘法。本题求1至n区间的和。
2025-08-18 20:40:20
215
原创 使用批处理创建网页的快捷方式
工作中很多系统都是网页版的,为了方便使用,需要给系统添加一个桌面快捷方式。而且很多电脑的默认浏览器都不一样,需要指定浏览器来打开系统。参考了文章 [记一次利用脚本自动创建桌面快捷方式的处理过程],决定使用批处理的方式来完成快捷方式的创建。使用的技术大概就是把创建快捷方式的逻辑写到脚本文件中,然后运行脚本,最后删除脚本。
2025-06-04 16:54:56
448
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1