自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(130)
  • 收藏
  • 关注

原创 深度学习基础——自动求导

自动求导是计算导数的有效方法,主要分为正向传播和反向传播两种模式。与符号求导(精确但表达式膨胀)和数值求导(简单但不精确)相比,自动求导通过链式法则组合基本运算的导数,兼具精度和效率优势,但需存储中间结果。正向传播沿计算图顺序计算各节点导数,反向传播则从输出开始反向累积梯度。雅可比矩阵可高效表示多输入多输出函数的梯度。这两种方法各有适用场景,正向传播适合输入少输出多的情况,而反向传播(即反向模式自动微分)更适用于深度学习等输出少输入多的场景。

2025-12-13 12:00:00 24

原创 扩展卡尔曼滤波器——数学推导

本文介绍了扩展卡尔曼滤波器(EKF)的基本原理和算法流程。EKF通过泰勒展开对非线性系统进行线性化处理,在状态估计和协方差更新中引入雅可比矩阵。文章详细推导了先验估计、先验误差协方差、后验误差协方差的计算过程,并给出了最优卡尔曼增益的求解方法。EKF算法分为预测和更新两个阶段:预测阶段计算状态雅可比矩阵和先验估计,更新阶段计算观测雅可比矩阵、卡尔曼增益并进行状态修正。该滤波器能够有效处理非线性系统的状态估计问题,在预测误差和测量噪声之间实现最优平衡。

2025-12-13 06:00:00 1390

原创 卡尔曼滤波——数学推导

本文推导了离散时间线性系统的卡尔曼滤波算法。首先建立含噪声的状态空间方程,其中过程噪声和测量噪声均假设为零均值高斯白噪声。通过先验估计与实测值的加权融合得到后验估计,引入卡尔曼增益$K_k$来平衡预测与测量的可信度。详细推导了后验误差协方差矩阵$P_k$的表达式,并通过最小化误差协方差迹求得最优卡尔曼增益公式$K_k=P_k^-H^T(HP_k^-H^T+R)^{-1}$。最后给出了先验误差协方差$P_k^-$的递推关系,为完整的卡尔曼滤波算法提供了理论基础。

2025-12-12 12:00:00 434

原创 滤波算法数学前置——状态空间

为了将二阶微分方程转化为一阶矩阵形式,我们需要确定状态变量。在计算机控制或卡尔曼滤波应用中,需要将连续系统离散化。

2025-12-12 06:00:00 589

原创 滤波算法数学前置——协方差

协方差矩阵(Covariance Matrix)用于描述多维数据集中,各个维度(变量)之间的相关性。协方差矩阵的对角线元素为各个变量自身的方差,非对角线元素是不同变量之间的协方差。假设我们有 3 名球员的数据,包含 3 个特征维度(身高。(负相关:样本中最高的球员比较年轻,最矮的球员最老)正值表示正相关,负值表示负相关,0 表示不相关。我们需要将每一列数据减去该列的均值,得到。(正相关:身高越高,体重通常越重)(方差)以及状态变量之间的。),即变量间的联动关系。),即数据的离散程度。:体现不同变量之间的。

2025-12-11 12:00:00 612

原创 卡尔曼滤波器——数据融合

融合后的方差(3.2)小于任何一个单独传感器的方差(4.0 和 16.0)。说明传感器融合能够产生比任何单一传感器都更可靠的估计结果。的不确定性最小,即让估计值的方差。对于不同传感器的数据进行融合。我们的目标是让估计值。

2025-12-11 06:00:00 705

原创 卡尔曼滤波器——递归算法

新的测量值对结果的影响越来越小。这对静态系统是好的,但如果系统状态在变化,或者测量噪声不稳定,简单的平均就不够用了。对于一个数值进行估计,最直观的方法是多次测量取平均值。时的估计误差远大于k时的测量误差时,估计值会趋近于测量值。为了处理不同精度的传感器和估计值,我们将系数。,只需要保留上一时刻的估计值和误差状态即可。,测量误差很大时,估计值会趋近于上一次估计值。替换为一个动态变化的参数。为当前时刻的估计值,为上一时刻的估计值,为当前时刻的测量值。

2025-12-10 21:46:11 829

原创 滤波算法数学前置——线性化

本文介绍了非线性系统的线性化方法。首先定义了线性系统需满足叠加原理,并通过示例说明如何判断系统的线性性。然后详细讲解了利用泰勒展开进行线性化的过程:在平衡点附近对非线性函数展开,保留常数项和一阶线性项,忽略高阶项。通过单变量和多变量系统的实例演示了具体步骤,包括寻找平衡点、引入偏差变量、计算雅可比矩阵等。特别地,对于二维系统,线性化后可以得到以雅可比矩阵表示的线性微分方程组。这种方法适用于在平衡点附近对非线性系统进行局部线性近似。

2025-12-10 21:27:53 852

原创 滤波算法数学前置——特征值与特征向量

本文介绍了线性变换中特征值与特征向量的概念及其应用。通过具体矩阵A=[1 1;4 -2]的示例,演示了求解特征值(λ1=2,λ2=-3)和对应特征向量的过程。利用这些特征向量构建过渡矩阵P,可将A对角化为Λ=diag(2,-3),实现方程组解耦。特别展示了该方法在解微分方程组中的应用:通过基变换x=Py将耦合方程转换为解耦形式,最终得到系统解。最后指出,通过分析特征值符号和性质(实部正负、虚部存在等)可判断系统稳定性(稳定、不稳定)和动态行为(振荡),为微分方程系统的研究提供了有效工具。

2025-11-12 02:14:21 911

原创 LeetCode 3397. 执行操作后不同元素的最大数量

对于这题,我们可以考虑升序排序,遍历每个元素,记录其前一个元素的值,若与前一个元素不同,则对当前元素进行减k操作,否则变为前一个元素加一,若当前元素比前一个元素大,此时答案加一。这样即可令其尽量不同且紧邻。

2025-10-18 14:15:23 168

原创 LeetCode 2761. 和等于目标值的质数对

对于这题,我们可以利用素数筛将<n的素数筛出,随后同两数之和的做法。

2025-10-08 00:00:00 211

原创 LeetCode 494. 目标和

对于这题,我们可以用回溯解决,枚举所有的 + - 组合,求出答案等于target的组合个数。也可以利用动态规划来解决,且更高效。对于 nums ,我们可以依据每个元素前面的符号来将其分为两个集合P Q,其中P为前面加正号的数,Q为前面加负号的数。其结构与 416. 分割等和子集 一模一样。

2025-10-07 14:27:54 234

原创 LeetCode 416. 分割等和子集

对于每个数字 num,我们更新 dp 数组。对于一个容量 i(从 target 到 num),有两种情况:放入或不放入。本题为0-1背包问题的变体,可以将背包容量看作nums元素总和的一半,目标是计算能否装满背包。为是否存在一个子集,其和为 i。

2025-10-07 00:00:00 273

原创 LeetCode 152. 乘积最大子数组

但在最大子数组积的问题中,情况变得复杂了,主要因为负数的存在:一个负数乘以一个大的正数,会变成一个小的负数,但这个小的负数如果再乘以一个负数,就会“负负得正”,变成一个非常大的正数。这意味着,我们在遍历时,不能只关心当前的最大积,因为一个当前看起来很小的负数积(例如 -100),可能在下一步遇到一个负数后,摇身一变成为最大的正数积。对于最大子数组和,一个负数总是会减小当前的和,如果和变成了负数,我们就可以大胆地从下一个数重新开始,因为它对后续的和只有“拖累”作用。: 以当前元素结尾的连续子数组的最大乘积。

2025-10-06 06:31:51 245

原创 LeetCode 918. 环形子数组的最大和

一个跨越头尾的子数组,例如 […],其实等价于从整个数组中移除了中间的一段不包含在内的“普通”子数组。有一个重要的边界情况需要处理:如果数组中所有的数都是负数,那返回的会是一个空数组。这是不合法的,所以此时应该返回最大子数组和。如果我们想让这个“环形”子数组的和最大,那么我们应该从数组总和中减去一个和为最小的“普通”子数组。这种情况和非环形数组完全一样。所以,这种情况下的最大和 = 数组总和 - 最小子数组和。最大子数组是“普通”的,没有跨越数组的头尾。最大子数组是“环形”的,跨越了数组的头尾。

2025-10-06 06:16:20 164

原创 浅解Letterbox算法

Letterbox是一种在计算机视觉(尤其是在YOLO、SSD等目标检测模型中)广泛使用的图像预处理技术。它的核心目标是将不同尺寸、不同长宽比的原始图片,转换成符合模型输入要求的固定尺寸,同时保持图片原有的长宽比不变,避免图像内容因拉伸或压缩而失真。这个名字来源于电影术语“信箱模式”(Letterboxing),即在宽屏电影在标准屏幕上播放时,为了保持画面比例,会在屏幕的上下方添加黑边。Letterbox算法做的正是类似的操作。

2025-09-21 16:39:45 315 1

原创 LeetCode 189. 轮转数组

对于 nums = [1, 2, 3, 4, 5, 6, 7, 8, 9], k = 3。对于这题,一个最直观、最简单的方法是:开一个新数组,将原数组的元素按新顺序填入新数组。考察一下整个交换过程,可以发现,其可以被拆解为许多"环"交叠在一起。还有什么办法,能够使空间复杂度降至。此时 nums = [7, 8,,发现回到起点,结束这次操作。此时 nums = [7,但除此以外,还有另一种方法。此时 nums = [,而每个环的长度 =令start = 0。

2025-09-05 23:26:29 341

原创 LeetCode 1792. 最大平均通过率

建立一个大根堆,每次从其中取出收益最大的班级,安插额外学生后进堆,直到额外学生安插完毕,最后计算通过率。对于这题,一个显然的贪心思想是:将extrastudents给能获得最高通过率收益的班级。

2025-09-01 09:07:23 260

原创 LeetCode 3665. 统计镜子反射路径数目

很经典的题型,但由于有方向限制,在更新 dp 时需要多考虑方向。则到达某个格子的总路径数就是。更新时,分方向讨论。

2025-08-31 13:58:38 387

原创 LeetCode 37.解数独

那么我们可以利用回溯,遍历所有空格,在其中填入可能的数字并检查有效性,递归调用解决下一个空格,如果后续路径失败,就将格子恢复原状。对于这题,首先考虑数独的解的条件是什么:每行、每列、每个九宫格中没有重复的数字。那么在对每个空格进行填数时如何考虑其有效性?检查其所在行列及九宫格。

2025-08-31 13:29:34 225

原创 LeetCode 2140. 解决智力问题

其中:j = min(i + questions[i][1] + 1, questions.size);可以注意到该题与打家劫舍有共通性。打家劫舍即为 brainpower 均为 1 的情况。即:从后往前更新,f[i] 为不解决 i 和解决 i 并跳转到 j 两种决策的最大值。个问题开始,到最后一个问题为止,所能获得的最高分数。设 f[i] 为从第。

2025-08-26 19:31:33 211

原创 LeetCode 100.11 滑动窗口最大值

在单调队列中,我们需要维护队列的单调性。若队列中元素比新元素小,则 pop 掉;若队列中元素即将离开窗口,也 pop 掉。这样在队列最前端的元素就是最大元素了。考虑用双端单调队列解决。

2025-08-22 08:00:00 208

原创 LeetCode100.10 和为 K 的子数组

对于这题,可以考虑将其转化为类似两数之和的问题。构建原数组的前缀和数组。表示从 0 到 i-1 的元素和。

2025-08-22 02:02:55 257

原创 windows11中配置Clion以使用c++20的module特性

c++20提出了module这一特性,允许开发者通过import xxx来更高效地引入库,然而现今只有部分编译器实现了这一功能。我们可以通过在Clion中配置工具链以在Clion上使用这一特性。

2025-08-17 05:41:08 712

原创 Leetcode 2787. 将一个数字表示成幂的和的方案数

换句话说,你需要返回互不相同整数。等等看作物品,最后即求装满背包的方案数。对于这题,不妨将其看作是 0-1背包。由于答案可能非常大,请你将它对。

2025-08-17 01:05:41 292

原创 P5683 [CSP-J2019 江西] 道路拆除

A 国有n座城市,从1∼n编号。1号城市是 A 国的首都。城市间由m条双向道路连通,通过每一条道路所花费的时间均为1单位时间。现在 A 国打算拆除一些不实用的道路以减小维护的开支,但 A 国也需要保证主要线路不受影响。因此 A 国希望道路拆除完毕后,利用剩余未被拆除的道路,从 A 国首都出发,能到达s1​号与s2​号城市,且所要花费的最短时间分别不超过t1​与t2​(注意这是两个独立的条件,互相之间没有关联,即不需要先到s1​再到s2​。

2025-08-09 00:00:00 678

原创 P1347 排序

一个不同的值的升序排序数列指的是一个从左到右元素依次增大的序列,例如,一个有序的数列ABCD表示ABBCCD。在这道题中,我们将给你一系列形如AB的关系,并要求你判断是否能够根据这些关系确定这个数列的顺序。

2025-08-08 16:00:00 341

原创 P1613 跑路

小 A 的工作不仅繁琐,更有苛刻的规定,要求小 A 每天早上在600之前到达公司,否则这个月工资清零。可是小 A 偏偏又有赖床的坏毛病。于是为了保住自己的工资,小 A 买了一个空间跑路器,每秒钟可以跑2k千米(k是任意自然数)。当然,这个机器是用longint存的,所以总跑路长度不能超过maxlongint千米。小 A 的家到公司的路可以看做一个有向图,小 A 家为点1,公司为点n,每条边长度均为一千米。小 A 想每天能醒地尽量晚,所以让你帮他算算,他最少需要几秒才能到公司。数据保证1到n。

2025-08-08 08:00:00 555

原创 P1037 [NOIP 2002 普及组] 产生数

给出一个整数n和k个变换规则。n234k2。2⟶53⟶6上面的整数234234534264564共4种不同的产生数。现在给出一个整数n和k个规则。求出经过任意次的变换(0次或多次),能产生出多少个不同整数。仅要求输出个数。

2025-08-08 00:00:00 538

原创 P2872 [USACO07DEC] Building Roads S

给定n个点的坐标,第i个点的坐标为xi​yi​,这n个点编号为1到n。给定m条边,第i条边连接第ui​个点和第vi​个点。现在要求你添加一些边,并且能使得任意一点都可以连通其他所有点。求添加的边的总长度的最小值。

2025-08-07 13:30:00 390

原创 P10928 走廊泼水节

给定一棵N个节点的树,要求增加若干条边,把这棵树扩充为完全图,并满足图的唯一最小生成树仍然是这棵树。求增加的边的权值总和最小是多少。树中的所有边权均为整数,且新加的所有边权也必须为整数。

2025-08-07 09:00:21 292

原创 P1983 [NOIP 2013 普及组] 车站分级

NOIP2013 普及组 T4。

2025-08-07 00:00:00 1077

原创 P10480 可达性统计

给定一张N个点M条边的有向无环图,分别统计从每个点出发能够到达的点的数量。

2025-08-06 18:00:00 539

原创 P4089 [USACO17DEC] The Bovine Shuffle S

Farmer John 坚信快乐的奶牛能产更多的奶,因此他在谷仓里安装了一个巨大的迪斯科球,并计划教他的奶牛跳舞!在查阅了流行的奶牛舞蹈后,Farmer John 决定教他的奶牛“Bovine Shuffle”。Bovine Shuffle 包括他的N头奶牛(1≤N≤100000)以某种顺序排成一行,然后进行连续的“洗牌”,每次洗牌可能会重新排列奶牛的顺序。为了让奶牛更容易找到自己的位置,Farmer John 为他的奶牛队伍标记了位置1N。

2025-08-06 10:54:38 409

原创 P4017 最大食物链计数

你知道食物链吗?Delia 生物考试的时候,数食物链条数的题目全都错了,因为她总是重复数了几条或漏掉了几条。于是她来就来求助你,然而你也不会啊!写一个程序来帮帮她吧。

2025-08-06 10:32:06 408

原创 P1550 [USACO08OCT] Watering Hole G

Farmer John 的农场缺水了。他决定将水引入到他的n个农场。他准备通过挖若干井,并在各块田中修筑水道来连通各块田地以供水。在第i号田中挖一口井需要花费Wi​元。连接i号田与j号田需要Pij​Pji​Pij​)元。请求出 FJ 需要为使所有农场都与有水的农场相连或拥有水井所需要的最少钱数。

2025-08-04 18:00:00 281

原创 P1195 口袋的天空

小杉坐在教室里,透过口袋一样的窗户看口袋一样的天空。有很多云飘在那里,看起来很漂亮,小杉想摘下那样美的几朵云,做成棉花糖。

2025-08-04 11:34:45 337

原创 P2661 [NOIP 2015 提高组] 信息传递

游戏开始时,每人都只知道自己的生日。之后每一轮中,所有人会同时将自己当前所知的生日信息告诉各自的信息传递对象(注意:可能有人可以从若干人那里获取信息,但是每人只会把信息告诉一个人,即自己的信息传递对象)。当有人从别人口中得知自己的生日时,游戏结束。在游戏里每人都有一个固定的信息传递对象,其中,编号为。号玩家都能从自己的消息来源得知自己的生日,同样符合游戏结束的条件。共一行一个整数,表示游戏一共可以进行多少轮。号玩家告诉他自己的生日,所以答案为。的同学的信息传递对象是编号为。的同学的信息传递对象是编号为。

2025-08-03 18:00:00 378

原创 P2573 [SCOI2012] 滑雪

a180285 非常喜欢滑雪。他来到一座雪山,这里分布着m条供滑行的轨道和n个轨道之间的交点(同时也是景点),而且每个景点都有一编号i1≤i≤n和一高度hi​。a180285 能从景点i滑到景点j当且仅当存在一条i和j之间的边,且i的高度j。与其他滑雪爱好者不同,a180285 喜欢用最短的滑行路径去访问尽量多的景点。如果仅仅访问一条路径上的景点,他会觉得数量太少。于是 a180285 拿出了他随身携带的时间胶囊。

2025-08-03 08:54:26 703

原创 [SCOI2005] 繁忙的都市

城市 C 是一个非常繁忙的大都市,城市中的道路十分的拥挤,于是市长决定对其中的道路进行改造。城市 C 的道路是这样分布的:城市中有n个交叉路口,有些交叉路口之间有道路相连,两个交叉路口之间最多有一条道路相连接。这些道路是双向的,且把所有的交叉路口直接或间接的连接起来了。每条道路都有一个分值,分值越小表示这个道路越繁忙,越需要进行改造。任务:作为市规划局的你,应当作出最佳的决策,选择哪些道路应当被修建。

2025-08-03 03:54:42 305

空空如也

空空如也

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

TA关注的人

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