自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

闻道有先后,术业有专攻

细心发现,大胆猜想,敢于运用,不用证明!

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

原创 AcWing 1388. 游戏(每日一题)

这道题跟蓝桥杯练习系统的一个题很像,但好久没有写了,也忘记思路的,区间DP感觉很难理解,代码倒是很简洁。y总讲的是另一种定义,dp的含义是先手玩家与后手玩家分数的差值,虽然好理解一点,但是这种定义一般是想不出来的,这里就用了最一般的定义去写的,望大家理解。

2026-03-10 15:55:31 1219 29

原创 【数据结构与算法】汉诺塔问题(C++)

本文的 C++ 非递归实现基于栈递归的核心思想,结合 C++ 面向对象和标准库的优势,实现了内存安全、无栈溢出、高效率、易维护的汉诺塔解法,相比 C 语言版和 C++ 递归版更适合实际工程应用。通过学习该实现,不仅能掌握汉诺塔的非递归解法,更能理解递归的本质(系统栈的自动调用)和递归转非递归的通用方法(自定义栈模拟状态),这一思路可推广到所有递归问题(如二叉树遍历、深度优先搜索 DFS、归并排序等)的 C++ 非递归实现中。执笔至此,感触彼多,全文将至,落笔为终。

2026-03-08 22:35:47 847 10

原创 【数据结构与算法】优先队列(priority_queue)

小根堆优先队列每次从队头弹出来是完成时间最小的一个,符合我们时间的渐进性,就是说,完成时间小的优先出来,好让外面等待的奶牛进去吃饭,例如:第一头奶牛到达时间是1,吃饭时间是100,第二头奶牛到达时间是10,吃饭时间是5,1+100>10+5,那么第二头奶牛是排在队列最前头的。优先队列是一种特殊的队列数据结构,其中每个元素都有一个与之相关的优先级,元素的出队顺序不是按照进入队列的时间(queue),而是按照优先级决定的。当使用的非常熟练时,就会有一种错觉:优先队列怎么这么好用,创造出优先队列的人也是个人才。

2026-03-02 19:23:16 1450 38

原创 腾讯云智能结构化OCR在物流行业的应用

腾讯云智能结构化OCR产品,是一款基于深度学习和大数据分析技术的智能OCR产品。其能够在复杂的文本格式和版式下,对文件中的关键信息进行识别,并将其转化为结构化数据。通过结合自然语言处理(NLP)、图像识别、多模态大模型技术等先进手段,腾讯云OCR能够高效、精准地提取各种文件中的关键信息。腾讯云智能结构化OCR产品提供基础与高级版本选项,具备全面的行业覆盖能力,能精确识别包括卡证、物流单据、工业标签、服务合同及医疗报告在内的多种文件;即便在版式多变或中英文混排的情形下,仍可维持高识别精度。

2026-02-24 13:35:33 950 6

原创 官网总是崩?一篇带你拿下满血版DeepSeek

好了,自此你就获得了满血版的DeepSeek,Cherry Studio也是在电脑桌面上有客户端,以后想用的时候,直接打开Cherry Studio就可以,实现随时随用,最重要的是不会有服务器繁忙,请稍后再试了。以上步骤为博主自己实践操作,若有错误以及不准确的地方,欢迎大家纠正。

2025-02-08 15:16:38 9680 185

原创 数据结构大作业——家谱管理系统(超详细!完整代码!)

完成一个简易的家谱管理系统,主要包含了管理和查询两大功能。首先允许用户进行家谱的创建并能简易的输出整个家谱。其次,还要具有查询某结点祖先和孩子的功能,同时为保证用户可以随时修改家谱,添加了完善孩子、完善兄弟和删除结点的功能。其中删除结点规则定义为:若有孩子,则孩子一并删去;若有兄弟,则保留兄弟。最后考虑到现实中用户中输入错误的情况,还要包括健壮性的检查。

2024-12-10 10:46:45 12432 143

原创 云开发 Copilot ——让开发变得更简单

在云开发AI+中,腾讯云提供一系列与 AI 相关的功能,如大模型接入、 Agent 等,帮助开发者为自己的小程序、web 或者应用快速接入 AI 能力,同时也提供了云开发 Copilot,来加速用户的开发,帮助用户更快构建自己的应用。下面博主将会为大家实战使用云开发 Copilot来助力开发。云开发 Copilot是云开发推出的一款 AI 开发辅助工具,可以帮助用户快速生成多种类型的应用功能,包括低代码应用、页面、组件、数据模型、CMS 内容等,帮助开发者快速构建自己的小程序、web 等云开发应用。

2024-12-02 12:39:30 8121 268

原创 【算法】连通块问题(C/C++)

连通块问题(Connected Component Problem)是一个经典的图论问题,通常用来找出图中的所有连通分量。给定一个无向图,连通块问题的目标是确定图中有多少个连通分量(即有多少个互相连通的节点组成的集合)

2024-11-26 11:02:37 7774 123

原创 【算法】计算程序执行时间(C/C++)

在C或C++中计算程序执行时间,可以使用多种方法,下面我介绍几种比较常见且好用的几种方法,大家可以选择适合自己的一种记住就可以了。这个库里面有很多函数,都是与时间有关的,功能非常强大,下面列举一个比较常用的函数。时间测量的场景,适用于对比算法时,不需要计算准确时间。这个函数主要用于测量程序的CPU时间消耗,而不是实际的墙钟时间(即从墙上的时钟测量的时间)。这个方法是博主比较推荐的一个,非常简便,且易懂,它用于测量程序的CPU时间。第一个是 递归的程序占用CPU的时间,第二个是非递归的程序占用CPU的时间。

2024-11-22 18:48:24 13701 135

原创 【算法】日期问题(C/C++)

日期问题见名知意,就是有关时间的问题,出题人在时间这一个角度去做文章,现在来看各大刷题网站,什么样的时间问题都有,比如闰年判断、回文日期、日期差值、日期格式化输入输出、时间轮询、时间窗口问题等。可所谓眼花缭乱,但是有的时间问题感觉就是图一乐,但是不排除创新题的可能性,后续也没有什么作用,既不会考也不会出在面试题上,下面我会对几种常见的日期问题进行详解。

2024-11-19 10:59:50 7209 275

原创 【机器学习】朴素贝叶斯算法

朴素贝叶斯算法(Naive Bayes Algorithm)是一种基于贝叶斯定理的简单概率分类器。它假设所有特征之间相互独立,这个假设虽然在现实中往往不成立,但在很多情况下,朴素贝叶斯分类器仍然能够表现得非常好。朴素贝叶斯算法是基于贝叶斯定理的分类算法。贝叶斯定理是一种描述随机事件A和B的条件概率的公式。在朴素贝叶斯中,我们假设特征之间相互独立,即一个特征的出现不影响其他特征的出现。这个假设被称为“朴素”的假设,也是算法名称的由来。

2024-11-15 12:00:32 3453 273

原创 【机器学习】K近邻算法

K近邻算法(K-Nearest Neighbors, KNN)是一种简单但非常实用的监督学习算法,主要用于分类和回归问题。KNN 基于相似性度量(如欧几里得距离)来进行预测,核心思想是给定一个样本,找到与其最接近的 K 个邻居,根据这些邻居的类别或特征对该样本进行分类或预测。

2024-11-12 14:09:07 2667 223

原创 背包九讲——背包问题求具体方案

f[i][j]的上一个状态就是从i+1转移过来的,因为我们定义从第i个物品到最后一个物品,第i+1个物品到最后一个之间的数量是不是比第i个物品到最后一个物品少。f[i+1][j]是不选第i个物品,f[i+1][j-v[i]]+w[i]是选第i个物品。因为我要在所有f[i][j]当中选择一个最大值,所以前面我管不管的先初始化为不选,往后如果背包容量大于体积,那我再看看是选了这个物品总价值是否增大,如果增大就更新,不增大就保持原来。

2024-11-07 12:00:23 2526 246

原创 背包九讲——背包问题求方案数

背包问题涉及到了三种基础的背包:01背包、多重背包、完全背包,我们要根据在这几个背包的基础上去计算在获得最大价值的情况下,有几种方案,并输出方案数。

2024-11-04 13:01:54 2431 250

原创 背包九讲——树形背包问题(有依赖的背包)

树形背包也叫有依赖的背包,是一种背包问题的变体,与传统的背包问题不同的是,物品之间存在一定的层次结构,形成了一棵树。每个节点代表一个物品,节点之间通过边连接,表示层次关系。问题的目标是在遍历这棵树的过程中,选择一些物品放入背包,使得背包中物品的总价值最大。在树形背包问题中,一个节点可以选择放入背包,也可以选择不放入背包。如果选择放入,就需要考虑该节点的子节点;如果选择不放入,可以考虑其他兄弟节点。问题的关键是如何在遍历树的过程中,动态规划地计算每个节点的状态。

2024-10-31 11:32:23 3807 234

原创 背包九讲——分组背包问题

分组背包问题(Grouped Knapsack Problem)是组合优化中的一个问题,它是经典的背包问题的变种。在分组背包问题中,有多个物品组,每组中的物品不可分割,并且每组中的物品数量至少有一个。目标是在不超过背包容量的前提下,选择物品的组合,使得总价值最大。

2024-10-29 10:20:15 2855 213

原创 背包九讲——二维费用背包问题

背包问题是一类经典的组合优化问题,通常涉及在限定容量的背包中选择物品,以最大化某种价值或利益。问题的一般描述是:有一个背包,其容量为C;有一组物品,每个物品有重量w和价值v。目标是选择一些物品放入背包,使得它们的总重量不超过背包容量,同时总价值最大。二维费用背包问题则是背包问题的变体,在背包问题中它只限定物品的重量,二维费用背包会再限定一个维度(体积),在既满足背包容量和既满足背包体积的情况下,使价值最大化。

2024-10-27 11:51:01 2294 214

原创 背包九讲——混合背包问题

混合背包问题是背包问题的另一种变体,结合了0/1背包、多重背包和完全背包的特点。在混合背包问题中,每种物品可以选择放入背包的次数是有限的,而且也可以选择放入的数量是无限的。问题的描述如下:给定一个背包容量为m,有n种物品,每种物品有重量v[i]、价值w[i]、以及数量s[i]。其中,s[i]表示第i种物品的数量限制。目标是选择物品放入背包,使得它们的总重量不超过背包容量,并且总价值最大。

2024-10-24 11:08:45 2794 251

原创 背包九讲——完全背包问题

完全背包问题呢,见名知意,就是所谓的物品无限多,选也选不完的那种,是多重背包的promax版本。完全背包问题是背包问题的一种变体,与0/1背包问题有所不同。在完全背包问题中,每种物品的数量是无限的,可以选择任意数量的某一种物品放入背包中。

2024-10-21 11:22:02 2727 257

原创 背包九讲——多重背包问题

多重背包问题是背包问题的一种扩展,与0/1背包问题和分数背包问题有些不同。在多重背包问题中,每种物品都有限定的数量,不再是仅有一个,而是有多个。问题的描述如下:给定一个背包容量为C,有n种物品,每种物品有重量w[i]、价值v[i]和数量s[i]。目标是选择物品放入背包,使得它们的总重量不超过背包容量,并且总价值最大。

2024-10-18 08:00:00 2758 235

原创 背包九讲——01背包问题

背包问题是一类经典的组合优化问题,通常涉及在限定容量的背包中选择物品,以最大化某种价值或利益。问题的一般描述是:有一个背包,其容量为C;有一组物品,每个物品有重量w和价值v。目标是选择一些物品放入背包,使得它们的总重量不超过背包容量,同时总价值最大。这个问题有两个主要变体:0/1背包问题和分数背包问题。

2024-10-15 11:47:10 2618 236

原创 【机器学习】随机森林算法(看我以弱博强)

随机森林(Random Forest)是一种集成学习方法,它通过构建多个决策树来进行分类或回归预测。随机森林的核心思想是“集思广益”,即通过组合多个模型来提高预测的准确性和鲁棒性。

2024-10-11 12:37:52 2221 212

原创 【算法】博弈论(C/C++)

在算法竞赛中,博弈论算法常用于解决涉及对抗、策略选择、最优决策等问题。这类问题通常涉及两名或多名玩家在某种规则下的竞争,而每个玩家试图通过选择最优策略获胜。常见的博弈论问题类型包括零和博弈、格局游戏(如Nim博弈)、棋类游戏以及其他涉及策略选择的问题。

2024-10-08 11:17:34 10422 230

原创 【算法】哈希映射(C/C++)

哈希映射算法是一种通过哈希函数将键映射到数组索引以快速访问数据的数据结构。它的核心思想是利用哈希函数的快速计算能力,将键(Key)转换为数组索引,从而实现对数据的快速访问和存储。哈希映射在现代软件开发中非常重要,它提供了高效的数据查找、插入和删除操作。

2024-10-03 12:02:41 3673 212

原创 【机器学习】ID3、C4.5、CART 算法

它是一种贪心算法,信息增益表示按某特征划分数据集前后信息熵的变化量,变化量越大,表示使用该特征划分的效果越好。:这个实现是为了教学目的而简化的,实际应用中通常会使用更高级的库和算法,如 scikit-learn 中的 DecisionTreeClassifier。C4.5是ID3的改进版,使用信息增益比替代信息增益作为特征选择标准,从而克服了ID3倾向于选择多值特征的缺点。

2024-09-28 11:51:57 5563 267

原创 【机器学习】决策树算法

决策树通过树状图的形式模拟决策过程,每个内部节点代表一个属性上的判断,每个分支代表判断的结果,每个叶节点代表一种决策结果。

2024-09-24 11:40:36 3573 263

原创 【算法】最长公共子序列(C/C++)

简称(LCS),是动态规划里面里面的基础算法它的所解决的问题是,在两个序列中找到一个序列,使得它既是第一个序列的子序列,也是第二个序列的子序列,并且该序列长度最长。由下图中两个序列,我们可以看出来最长公共子序列为[s c r g]。我们来举个“”,比如序列A为“abcdef”,序列B为“bcef”,那么它的最长公共子序列为序列B,即:“bcef”,注意最长公共子序列不用保证每一个字符必须连续。那么我们一般的暴力做法是什么呢?

2024-09-20 10:50:16 10942 190

原创 大一新生以此篇开启你的算法之路

各位大一计算机萌新们,你们好,本篇博客会带领大家进行算法入门,给各位大一萌新答疑解惑,请不要错过。算法竞赛是一个很好的机会,希望各位大一新生把握此次机会,好好的体验一把,过了这个村就没这个店了。写此篇博客的目的是为了帮助大一新生进行算法入门解答,希望学弟学妹们少走博主走过的弯路。

2024-09-13 11:11:55 5355 251

原创 小小GCD、LCM拿下拿下

GCD、LCM是算法当中的基础之基础,分别对应最大公约数、最小公倍数,在算法竞赛中涉及到的概率也是比较高的,GCD、LCM在小学时就涉及到了求法,本篇将给大家详解GCD、LCM这两个函数,并且提供最简单的模板,在考察时,直接背上即可。

2024-09-10 12:00:39 2405 229

原创 一篇带你速通差分算法(C/C++)

差分算法是一种在计算机科学中常用的算法,特别是在处理序列数据时,它可以帮助我们快速计算出序列中相邻元素的差值。时间复杂度可以达到O(1),在C++中实现差分算法不仅可以提高程序的效率,还可以简化代码的复杂度。本文将详细介绍差分算法的原理、C++实现方法以及算法例题。

2024-09-07 11:57:16 8025 230

原创 一篇带你速通前缀和算法(C/C++)

前缀和是一种常见的算法计算技巧,通常用于处理数组或序列的连续子区间求和问题。它可以帮助我们在 O(1) 的时间内计算出指定子区间的和,而不需要每次都遍历整个子区间。前缀和一般用于预处理当中,具有高效率的特点。

2024-09-04 11:57:04 3848 216

原创 详解树状数组(C/C++)

树状数组(Binary Indexed Tree,简称BIT或Fenwick Tree)是一种用于高效处理数据序列的算法数据结构。它能够支持两个主要操作:单点更新和区间求和,这两个操作的时间复杂度都能达到O(log n),其中 n是数据序列的长度。树状数组非常适合处理那些需要频繁更新和查询区间和的问题。

2024-09-01 12:01:34 2594 121

原创 弗洛伊德(Floyd)算法(C/C++)

弗洛伊德算法(Floyd's algorithm),又称为弗洛伊德-沃尔什算法(Floyd-Warshall algorithm),是一种用于在加权图中找到所有顶点对之间最短路径的算法。这个算法适用于有向图和无向图,并且可以处理负权重边,但不能处理负权重循环。

2024-08-28 15:18:54 5540 240

原创 迪杰斯特拉(Dijkstra)算法(C/C++)

迪杰斯特拉(Dijkstra)算法是一种用于在加权图中找到单个源点到所有其他顶点的最短路径的算法。它是由荷兰计算机科学家艾兹格·迪科斯彻(Edsger Dijkstra)在1956年提出的。Dijkstra算法适用于处理带有非负权重的图。迪杰斯特拉算法主要特点是从起始点开始,采用贪心算法,每次遍历到始点距离最近且未访问过的顶点的邻接节点,直到扩展到终点为止。

2024-08-19 12:02:02 12507 217

原创 数据结构与算法——BFS(广度优先搜索)

广度优先搜索(Breadth-First Search,简称BFS)是一种遍历或搜索树和图的算法,也称为宽度优先搜索,BFS算法从图的某个节点开始,依次对其所有相邻节点进行探索和遍历,然后再对这些相邻节点的相邻节点进行探索,直到遍历完所有的节点。

2024-08-17 11:47:21 17263 195

原创 数据结构与算法——DFS(深度优先搜索)

深度优先搜索(Depth-First Search,简称DFS)是一种用于遍历或搜索树或图的算法。这种算法会尽可能深地搜索图的分支,直到找到目标节点或达到叶节点(没有子节点的节点),然后回溯到上一个分支继续搜索。

2024-08-13 13:52:30 8853 203

原创 C/C++字符串函数

在一些程序里面我们将会进行一系列的字符串操作,这些操作可以用一些函数进行简单的实现,对写代码效率和代码可读性具有重要意义。

2024-08-11 21:22:12 6188 32

原创 最大子矩阵(C/C++)

最大子矩阵问题是指在一个矩阵中找到一个子矩阵,使得该子矩阵的元素之和最大。解决该问题的常用方法是使用动态规划。先计算出每一行的前缀和,然后对于每一列的起始和终止位置,计算出该区域内每一行的和,得到一个一维数组。再对该一维数组使用动态规划求解最大子数组和的问题,得到最大子矩阵的元素之和。

2024-08-10 13:05:52 3800 157

原创 C/C++数字与字符串互相转换

C/C++中数字与字符串类型转换大全,具有多种方法,总有一个会让你喜欢

2024-08-08 19:40:57 17493 69

原创 Codeforces Round 963 (Div. 2)

Codeforces Round 963 (Div. 2) A—C题详解

2024-08-07 20:48:29 1448 17

空空如也

空空如也

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

TA关注的人

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