自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一个大一博客!

喜欢C/C++

  • 博客(69)
  • 收藏
  • 关注

原创 数据结构:二叉树(三)·(重点)

⼆叉树⼀般可以使⽤两种结构存储,⼀种顺序结构,⼀种链式结构。

2025-04-04 22:23:19 450

原创 蓝桥备赛指南(14):(重点)· 前缀和(省赛)

前缀和是一种预处理数组的方法,用于快速计算数组的区间和。其核心思想是预先构建一个辅助数组。prefix表示前缀和由一个用户输入的数组生成。

2025-04-04 12:45:32 312

原创 蓝桥备赛指南(13):填空签到题(1-1)

签到题大致可以分为数学类计算题、组合与排列类计算题、逻辑推理类计算题。

2025-04-02 21:35:29 1105

原创 蓝桥备赛指南(12)· 省赛(构造or枚举)

C++:蓝桥备赛重点算法枚举和构造简介

2025-04-01 22:50:35 1291 2

原创 蓝桥备赛指南(11):递归简介

C++:递归算法的简介

2025-04-01 21:47:04 432

原创 蓝桥备赛指南(10):完全背包模型

完全背包模型也叫无穷背包,即每种物品有无数个的背包。

2025-03-30 18:58:18 226

原创 蓝桥备赛指南(9):树形数据结构之树状数组基础

树形数据结构之树状数组基础

2025-03-30 18:43:47 131

原创 常见排序算法之希尔排序

希尔排序法⼜称缩⼩增量法。是一种基于插入排序的高效排序算法,由美国计算机科学家Donald Shell于1959年提出。

2025-03-27 16:50:40 533

原创 蓝桥备赛指南(8):矩阵基础

C++:矩阵基础

2025-03-24 20:25:32 527

原创 数据结构:树的先序遍历、中序遍历、后序遍历和层序遍历

树的先序遍历、中序遍历、后序遍历和层序遍历

2025-03-24 19:35:40 322

原创 蓝桥备赛指南(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

原创 数据结构:二叉树(二)·(重点)

⼀棵⼆叉树是结点的⼀个有限集合,该集合由⼀个根结点 加上两棵别称为左⼦树和右⼦树的⼆叉树组成或者为空。

2025-03-19 17:41:11 358

原创 数据结构:二叉树(一)·(重点)

树是⼀种⾮线性的数据结构,它是由 n ( n>=0 ) 个有限结点组成⼀个具有层次关系的集合。

2025-03-19 16:23:28 633

原创 贪心算法:将数组和减半的最少操作次数

贪心算法:数组和减半的最少操作次数;贪心策略:优先选择当前数组中最大的数组元素进行减半。

2025-03-17 21:31:07 535

原创 路径问题(greedy):地下城游戏

用动态规划原理解救公主!!!

2025-03-17 20:31:14 631

原创 贪心算法简介(greed)

贪心算法(Greedy Algorithm)是一种在每个决策阶段都选择当前最优解的算法策略,通过局部最优的累积来寻求全局最优解。其本质是"短视"策略,不回溯已做选择。

2025-03-12 20:39:45 696

原创 最小路径和

给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。

2025-03-12 19:44:36 283

原创 下降路径最⼩和(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

原创 数据结构拓展:详解realloc(C++)

在C++中,realloc 是C标准库提供的一个内存管理函数,用于动态调整已分配内存块的大小。

2025-03-06 17:11:47 399

原创 拓展:核心对象成员访问操作符

针对于核心对象成员访问操作符,这篇文章只简单介绍一下两者的区别以及优缺点,什么情况下使用操作符(->)、什么情况下使用操作符(.)。通过明确操作对象的类型(对象/指针)和上下文需求,可以高效选择最合适的操作符。,但它们的使用场景和底层逻辑有明显区别。(点操作符)是用于访问对象成员的核心操作符。先解引用指针,再访问。

2025-03-06 16:40:56 405

原创 美赛-问题D:五大湖的水资源问题

本文旨在解决2024年国际数学建模竞赛(ICM)D题——五大湖水管理问题。通过构建一个动态网络流模型,结合历史数据和环境变化,我们提出了一套优化五大湖水位管理的方案。该方案特别关注了安大略湖的水位控制问题,并考虑了不同利益相关者的需求。本文提供了详细的模型构建方法、算法设计、敏感性分析及对2017年实际水位数据的验证结果。五大湖系统包括苏必利尔湖、密歇根湖、休伦湖、伊利湖和安大略湖,以及连接这些湖泊的河流和运河。湖泊水位受多种因素影响,如降水、蒸发、温度变化等。

2025-03-05 19:20:49 1301

原创 结构体简介

这篇文章呢就给大家简单讲解一下什么是结构体,也让大家对结构体有一个较为清晰的了解,从而帮助同学们更好的掌握结构体。

2025-02-23 17:37:32 428

原创 礼物的最大价值

我们初始化的目的呢就是考虑到边界问题和一些细节问题。路径问题我们一般考虑用虚拟节点的方式来初始化。有的同学问到这里就朦朦的,虚拟节点简单的理解就是步存储实际数据一个节点,主要用来处理特殊情况。注意:珠宝的价值都是大于 0 的。除非这个架子上没有任何珠宝,比如。1.里面的值要保证后面的填表时正确的;用虚拟节点处理路径问题就是多加一行和多加一列的方式。路径 1→3→5→2→1 可以拿到最高价值的珠宝。为该位置珠宝的价值。我们根据之前的路径问题的做题思路,根据。,从某一个位置出发,向下或向右走。

2025-02-20 23:58:35 147

原创 顺序表简介(新手仅需了解即可)

顺序表是理解数据结构的基础,其核心是数组+动态扩容。

2025-02-20 19:54:19 350

原创 常见排序算法之直接插入排序

是一个函数,接受一个类型的引用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

原创 深入理解指针(3)

什么是指针变量呢?字符指针变量是一种特殊的指针变量,它专门用于存储字符型数据的地址。

2025-02-02 18:57:42 340

原创 蓝桥备赛指南(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++实现方法

内容概要:本文主要讲述了使用C++实现斐波那契数列以及泰波那契数列的方法,通过动态规划的方式解决这一数学难题。文章首先介绍了斐波那契数列及其变体泰波那契数列的基本概念和递推关系,接着深入解释了dp状态方程和状态转移的概念。对于斐波那契数列,重点在于前两项之和形成下一项规则的应用;而对于泰波那契数列,则是前三项相加得到第四项。 适合人群:对C++有基本认识,希望深入了解经典序列求解技巧的新手程序员和自学者。 使用场景及目标:适用于在面试中遇到类似题目时作为解决方案准备,同时也可以作为数据结构与算法课程的教学材料之一,帮助学生建立对动态规划的理解。 阅读建议:本资料包含了详细的推理过程与代码实例,因此建议边读边练,在理解算法背后思想的同时,动手实践并尝试优化现有程序来增强编程能力。

2024-10-28

Matlab 软件基础入门

本文件是一份关于 Matlab 软件基础入门的文本文件,旨在为初学者提供基本的 Matlab 软件使用方法和技巧。文件内容涵盖了 Matlab 的基本概念、语法规则、常用函数以及一些实用的编程技巧。通过本文件的学习,读者可以快速掌握 Matlab 软件的基本操作,为进一步学习和应用 Matlab 软件打下坚实的基础。 本文件的内容丰富、结构清晰,适合初学者系统学习和掌握 Matlab 软件的基础知识和技能。同时,本文件也提供了一些实用的编程技巧和应用实例,帮助读者更好地理解和应用 Matlab 软件。

2024-09-27

C or C++函数递归详解

本文介绍了C语言中函数递归的概念和应用。函数递归是指一个函数在执行过程中调用自身的过程,可以帮助解决一些复杂的问题,如计算阶乘、斐波那契数列等。文章通过实例代码详细讲解了函数递归的实现方式和注意事项,包括递归函数的定义、调用过程、堆栈的使用等。同时,文章还介绍了函数递归的优点和缺点,以及如何避免递归过程中出现死循环或堆栈溢出等问题。通过本文的学习,读者可以更好地理解函数递归的概念和应用,掌握递归函数的编写方法和技巧,提高编程能力和问题解决能力。 希望这部分资源对初学者学习C/C++能够有很大的帮助!

2024-08-29

C/C++函数部分重点内容详解

首先,这部分资源主要描述了三个常用头文件,其次,拓展部份讲述了C/C++当中C2371重定义报错的原因以及解决办法和函数相关的注意事项,最后,解决了如何导入静态库。 这部分资源比较适合有一定基础的C/C++的人群,主要解决了学者在学习C/C++的过程中遇到的函数或者变量的声明以及C/C++报错重定义问题,希望此部分资源能够对学习C/C++的学者能够带来巨大的帮助!

2024-08-18

C++内存分配,C++内存

C++内存分配,C++内存

2024-07-24

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

TA关注的人

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