- 博客(12)
- 收藏
- 关注
原创 day9 二分查找法
本文介绍了二分查找算法及其应用。二分查找通过比较目标值与数组中间元素,将搜索范围减半,时间复杂度为O(logn)。文章提供了两个常用模板:查找第一个≥x的数和最后一个≤x的数。通过五个编程竞赛例题(砍树、解方程、跳石头、路标设置、设备充电)展示了二分查找的实际应用,包括边界处理、精度控制和条件判断等技巧。每个例题都配有详细代码和解题思路,帮助读者掌握二分查找在不同场景下的灵活运用。
2025-11-27 23:35:53
436
原创 day 8贪心算法
在日常题目中贪心算法非常有用,很多题第一思路可以去用贪心去试试,不能的话再用其他的算法,但贪心算法也不是万能的,只不过再做题的时候能跟你一个比较清晰的思路,希望大家这点能够明白。
2025-11-25 23:39:04
626
原创 day7暴力枚举做题心得
关于暴力枚举非常考验基础能力,以及代码基础能力,通过洛谷题单刷题,本章将会讲解一些重要题的大概思路,以便大家理解。此题考查矩形个数,以及简单的一些结论,这种题得多刷备公式代码如下。
2025-11-25 23:14:20
401
原创 day6 最短路径算法
本文介绍了四种常见的最短路径算法:1) Dijkstra算法适用于边权为正的图,包含朴素版本(n²)和堆优化版本(mlogn);2) Bellman-Ford算法支持负权边,时间复杂度为O(mn);3) SPFA算法是Bellman-Ford的优化版本,平均复杂度O(m)但可能被特殊数据卡;4) Floyd算法采用动态规划思想,处理多源最短路径问题,复杂度O(n³)。每种算法通过不同策略解决特定场景下的最短路径问题,文中提供了核心代码实现。
2025-11-18 15:20:02
941
原创 补充额外说明二分法(附:数的三次方根计算)
有些时候我们不能用数函数去比较数的范围并且有时候我们也想快速查找某个数大约在哪个范围里面,因此我们会有二分法的诞生,它适用于非常多的场景例如查找/搜索,比较等领域。//以上便是二分法最主要的用途希望对你有帮助。
2025-11-02 20:52:13
207
原创 day5洛谷刷题 P1249 最大乘积 /P1045 [NOIP 2003 普及组] 麦森数
首先我们经过一些观察发现了一些规律,发现当这些自然数连续时成绩会有最大值,因为我们便可以从2,3,4等等开始累加,如果发现刚好等于最大值,那么便是这些序列.麦森数,本体难在我们需要用到一些数学知识来求,以及要将数学知识变现为代码,很考验代码基本功和思维能力.第二个问题该怎么表示后500位,也可以看上面的文章来理解是怎么用数学知识求解后500位数的。首先先说最大乘积,他运用了一个算法贪心算法,鼠鼠目前还没有系统性学习所以会有一点陌生。若找到的和与 n 相差 1 ,可以直接删除 2 并将最后一个数加上 1。
2025-11-02 20:14:31
264
原创 day4洛谷刷题P1012 [NOIP 1998 提高组] 拼数
并且题目要求我们拼接再一起,所以考了我们俩个知识点,一是怎么去拼接数,二是如何写一个排序规则。那么根据这些,博主想到了string用字符串表示数字,并且用字符串比较规则排序数字那么便得到了以下的代码。其实这是洛谷排序题单中最难的一题了,其他的带我们复习了结构体的用法,以及回顾了常见的排序算法,这题牢固了我们如何写比较函数 cmp ,日后我们可以自主自定义排序 规则。本题用c++写可以用sort函数,我们要怎么排序呢,我们需要将比较第一个数最大的放在第一位,之后再一次比较。
2025-11-02 19:54:25
147
原创 day3 排序算法
但我们并不能确定待排元素中究竟哪一部分是有序的,所以我们一开始只能认为第一个元素是有序的,依次将其后面的元素插入到这个有序序列中来,直到整个序列有序为止。冒泡排序是最简单和最通用的排序方法,其基本思想是:在待排序的一组数中,将相邻的两个数进行比较,若前面的数比后面的数大就交换两数,否则不交换;这就是分治的典型案例,整个数组无法直接比大小,我们就把他分成小数组求,然后把小数组得来的答案往上传,和另一个小数组比较,循环往复,就得到了最终答案。它的优势在于在对一定范围内的整数排序时,它的复杂度为。
2025-11-02 19:43:44
953
原创 day3 洛谷P1065 P1786
因此就如上述代码,结合题意我们需要去模拟出俩个机器在不同时间同时运作,并且要记录贝格工件要加工的时间,这道题是一道比较复杂的模拟题,因此代码会略显较长。同时利用的结构体,去表示了机器id和时间。帮贡顺序,根据题意我们知道我们需要自定义俩种排序这是第一步,其二我们需要准确去表示输入文本中的数据,以及去模拟其中排序的步骤,这里面的话鼠鼠推荐直接用。莫西莫西,今天是第三天本次鼠鼠仍旧再刷模拟与高精度,不过是算里面有难度的题了。在本体中不仅可以学到如何构造排序的函数,还能掌握sort函数的使用方法,
2025-10-29 23:49:30
294
原创 关于备考华为ICT-昇腾 赛道
里的资源是非常不错的,如果你只是为了初赛完全可以去做模拟题然后用模拟题的知识点去扩充自己,拿高分的可能其实挺高的,但如果你这俩个都有想法可以跟鼠鼠一样去学习里面学习空间资源,这不仅有助于你做模拟题时更容易去理解,并且对后面也能更快的上手。为什么叫英文题/理解题肯定有很多人问,因为鼠鼠发现,有些题目让你寻找模块和判断下列哪个是这个功能的有70%概率可以直接凭借你的英文/中文水平解决出来。没错,剩下的一些题就是考这些,但这些题知识点都比较简单,基本上错一次就能掌握清楚,同时这些人工智能题都是有关。
2025-10-29 10:02:29
327
原创 day2 10.28洛谷刷题 P1067,1098,1591,1518
第一件事相信大家如果有认真做之前的题目应该不算很难,难的是第二件,什么叫遇不到,进入死循环。此题目比昨天博主写的阶层和题目简单,数码只需要遍历数组看有几个一样的暴力循环。博主第一次将死循环设立了一个条件即与第一步重合但这样会导致LTE 所以之后博主想到了之前DFS深度探索中的visit数组来记录当前的状态是否走过。这道题是一道有点难度的模拟题,我们需要考虑俩件事,第一件,该如何模拟牛何农民的移动。本题目比较基础,只需要根据条件判断几个if即可,但还是很锻炼代码基础能力,直接上博主写的代码把。
2025-10-28 17:28:51
268
原创 洛谷每日刷题(10.27)P1303,1009,4924,1328
这道题鼠鼠倒是像了很久最后发现自己思维错了,所以最后代码并不是自己独立,而是看着题解代码做了一些自己的解释(题解是第一篇),我们顺时针就是将第i行j个变为第i列j个,每行都可以看成这么转换于是将数学关系式一联系就可以求的,这道题主要是需要把这一层数学关系求出其余的代码实现不算难。= n *(n-1)!这道题鼠鼠用取余模并用傻瓜式if来解的这个题目,但一直有个没给过不知道为什么,但是主播看了题解后学了新的方法,就是讲他模拟成表格,这不仅有利于思路清晰,而且还简化了很多代码,鼠鼠确实学到了。
2025-10-28 00:22:37
232
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅