- 博客(69)
- 收藏
- 关注
原创 蓝桥备赛指南(14):(重点)· 前缀和(省赛)
前缀和是一种预处理数组的方法,用于快速计算数组的区间和。其核心思想是预先构建一个辅助数组。prefix表示前缀和由一个用户输入的数组生成。
2025-04-04 12:45:32
312
原创 蓝桥备赛指南(8):01背包模型
背包模型:有一个体积为V的背包,商店有n个物品,每个物品有一个价值P和体积W,每个物品只能只能被拿一次,问能够装得下物品的最大值。
2025-03-23 20:50:16
187
原创 蓝桥杯备赛(7):ST表
RMQ问题是针对于数组,每次给一个区间[l,r],要求返回区间内的最大值或最小值(的下标),也就是说,RMQ问题就是求区间最值的问题。对于RMQ问题,容易想到一种O(n)的方法,就是用i直接遍历[l,r]区间,不断比较a[i]与max的大小关系,然后不断更新max,最后得出的就是最大值。但是,我们可以利用倍增和动态规划的思想,利用“ST表”这个数据结构来帮助解决。
2025-03-23 20:00:50
293
原创 贪心算法简介(greed)
贪心算法(Greedy Algorithm)是一种在每个决策阶段都选择当前最优解的算法策略,通过局部最优的累积来寻求全局最优解。其本质是"短视"策略,不回溯已做选择。
2025-03-12 20:39:45
696
原创 下降路径最⼩和(medium)
可以从第一行中的任何元素开始,并从每一行中选择一个元素。在下一行选择的元素和当前行所选元素最多相隔一列(即位于正下方或者沿对角线向左或者向右的第一个元素)。如图所示,为和最小的两条下降路径。如图所示,为和最小的下降路径。,请你找出并返回通过。
2025-03-11 19:22:23
220
原创 C语言拓展:详解操作符( 三目操作符【条件1 ? 条件2 : 条件3 】 )
在C++中,条件操作符(条件1 ? 表达式1 : 表达式2)是唯一的三元操作符,用于简化条件判断逻辑。
2025-03-06 18:06:22
492
原创 数据结构拓展:详解perror函数(C++)
在C++中,perror 是C标准库提供的错误信息输出函数,用于将系统错误码(errno)转换为可读的错误描述
2025-03-06 17:38:25
511
原创 拓展:核心对象成员访问操作符
针对于核心对象成员访问操作符,这篇文章只简单介绍一下两者的区别以及优缺点,什么情况下使用操作符(->)、什么情况下使用操作符(.)。通过明确操作对象的类型(对象/指针)和上下文需求,可以高效选择最合适的操作符。,但它们的使用场景和底层逻辑有明显区别。(点操作符)是用于访问对象成员的核心操作符。先解引用指针,再访问。
2025-03-06 16:40:56
405
原创 美赛-问题D:五大湖的水资源问题
本文旨在解决2024年国际数学建模竞赛(ICM)D题——五大湖水管理问题。通过构建一个动态网络流模型,结合历史数据和环境变化,我们提出了一套优化五大湖水位管理的方案。该方案特别关注了安大略湖的水位控制问题,并考虑了不同利益相关者的需求。本文提供了详细的模型构建方法、算法设计、敏感性分析及对2017年实际水位数据的验证结果。五大湖系统包括苏必利尔湖、密歇根湖、休伦湖、伊利湖和安大略湖,以及连接这些湖泊的河流和运河。湖泊水位受多种因素影响,如降水、蒸发、温度变化等。
2025-03-05 19:20:49
1301
原创 礼物的最大价值
我们初始化的目的呢就是考虑到边界问题和一些细节问题。路径问题我们一般考虑用虚拟节点的方式来初始化。有的同学问到这里就朦朦的,虚拟节点简单的理解就是步存储实际数据一个节点,主要用来处理特殊情况。注意:珠宝的价值都是大于 0 的。除非这个架子上没有任何珠宝,比如。1.里面的值要保证后面的填表时正确的;用虚拟节点处理路径问题就是多加一行和多加一列的方式。路径 1→3→5→2→1 可以拿到最高价值的珠宝。为该位置珠宝的价值。我们根据之前的路径问题的做题思路,根据。,从某一个位置出发,向下或向右走。
2025-02-20 23:58:35
147
原创 常见排序算法之直接插入排序
是一个函数,接受一个类型的引用arr作为参数,目的是对这个数组进行排序。(vector在这里可以理解为动态数组)获取数组 arr 的大小,后续会在循环中使用这个大小来遍历数组。
2025-02-10 20:58:30
343
原创 不同路径(pro)
给定一个m x n的整数数组grid。一个机器人初始位于(即grid[0][0]机器人尝试移动到(即机器人每次只能向下或者向右移动一步。网格中的障碍物和空位置分别用1和0来表示。机器人的移动路径中不能包含有障碍物的方格。返回机器人能够到达右下角的不同路径数量。测试用例保证答案小于等于2 * 109。23x3 网格的正中间有一个障碍物。从左上角到右下角一共有2条不同的路径:1. 向右 -> 向右 -> 向下 -> 向下2. 向下 -> 向下 -> 向右 -> 向右1为0或1。
2025-02-08 00:33:21
1014
原创 深入理解指针(5)
这篇文章就是指针基础部分的最后一篇文章了,之后呢会持续给大家更新一些关于字符指针呀、函数指针呀、还有一些关于指针的拓展内容以便帮助大家更好的理解指针。
2025-02-05 16:04:13
366
原创 深入理解指针(4)
回调函数是什么?简单来说,回调函数就是⼀个通过函数指针调⽤的函数。如果你把函数的指针(地址)作为参数传递给另⼀个函数,当这个指针被⽤来调⽤其所指向的函数 时,被调⽤的函数就是回调函数。接下来将通过代码来给大家简单演示一下什么是回调函数?
2025-02-05 14:59:10
381
原创 蓝桥备赛指南(6)
首先,set集合是一种容器,用于存储一组唯一的元素,并按照一定的排序规则进行排序,set中的元素是按照升序排序的,默认情况下,它使用元素的比较运算符来进行排序。其次,set的内部实现使用了红黑树(一种自平衡的二叉搜索树)来存储元素,并保存元素的有序性。这使得在set中插入、删除和查找元素的时间复杂度都是对数时间。最后,set中的元素是唯一的,即不允许重复的元素存在。当插入一个重复的元素时,set会自动忽略该元素。multiset和set类似。
2025-02-04 00:02:37
407
原创 蓝桥备赛指南(5)
queue是一种先进先出的数据结构。它提供了一组函数来操作和访问元素,但它的功能相对较简单,queue函数的内部实现了底层容器来存储元素,并且只能通过特定的函数来访问和操作元素。
2025-01-30 15:53:52
703
原创 深入理解指针(2)
什么是数组名?在计算机编程中,数组名是用于标识一个数组的名称。那应当如何来理解数组名呢?事实上,在数组中数组名就是数组首元素的地址。
2025-01-29 17:58:03
371
原创 蓝桥备赛指南(5)
stack是一种先进后出的数据结构,使用前也需要包含头文件<stack>。stack提供了一组函数来操作和访问元素,但它的功能相对简单。
2025-01-29 16:44:45
225
原创 不同路径(medium)
本题是机器人在 m×n 网格中从左上角到右下角的路径计数问题,采用动态规划算法。用 dp[i][j] 表示到达 [i,j] 的路径数,状态转移方程为dp[i][j]=dp[i−1][j]+dp[i][j−1] ,初始化 dp[0][1]=1 ,按序填表后返回 dp[m][n]。
2025-01-29 10:30:16
835
原创 深入理解指针(1)
说到指针,是入门C语言或者C++最大的一座高山,理解指针不容易,学好指针更不容易,因为指针涉及面较广泛,除了C/C++,指针在嵌入式、单片机中涉及非常广泛。那么我们应该如何才能学好指针呢?学好指针在这一篇文章中就需要先理解什么是内存,什么是地址,不经如此,我们还要指针变量类型、以及如何使用指针。
2025-01-29 09:36:40
604
原创 vector函数简介-蓝桥备赛指南(4)
在C++中,vector是一个动态数组容器,可以存储一系列相同类型的元素,它是标准库<vector>中定义的模板类。
2025-01-27 08:49:42
1306
原创 蓝桥备赛指南(3)
二分法是一种高效的查找方法,它通过将问题的搜索范围一分为二(两边具有明显的区别),迭代地缩小搜索范围,直到找到目标或确定目标不存在。二分法适用于有序数据集合,并且每次迭代可以将搜索范围缩小一半。二分法本质上也是枚举,但和暴力枚举不同,二分法利用数据结构的单调性减少了很多不必要的枚举,从而极大地提高了效率,一般可以将O(n)的枚举优化到O(logn)。常见的二分类型有整数二分、浮点二分以及二分答案。
2025-01-27 04:31:08
702
斐波那契数列与泰波那契数列的C++实现方法
2024-10-28
Matlab 软件基础入门
2024-09-27
C or C++函数递归详解
2024-08-29
C/C++函数部分重点内容详解
2024-08-18
2023mathorcup大数据竞赛C题第一问求解思路用”时间序列分析法中的'平均法'“
2024-03-30
TA创建的收藏夹 TA关注的收藏夹
TA关注的人