- 博客(229)
- 收藏
- 关注
原创 裴蜀定理(Bézout‘s identity)
裴蜀定理(Bézout’s identity),又称贝祖定理,是数论中的一个重要定理,得名于法国数学家艾蒂安·裴蜀。
2025-04-02 15:21:13
319
原创 BFS(广度优先搜索)
的本质,结合队列实现,能够高效解决最短路径和状态搜索问题。是一种用于遍历或搜索树、图等结构的算法,其核心思想是。,优先访问距离起点最近的节点。(障碍)组成的矩阵中,找到从起点。掌握BFS的关键在于理解其。
2025-03-31 23:43:41
569
原创 蓝桥杯——统计子矩阵
二维前缀和数组表示从矩阵的左上角(1,1)到当前位置(i,j)的子矩阵的元素和。通过二维前缀和,可以在常数时间内计算任意子矩阵的和。目标找出所有满足条件的子矩阵数量,其中子矩阵的和不超过给定的阈值k。在当前上下边界(i, j)和右边界r的情况下,统计所有满足条件的子矩阵数量。这些子矩阵的左边界从l到r,数量为r - l + 1。
2025-03-31 23:43:08
500
原创 决策树原理详解
线性搜索和二分搜索是两种常见的搜索算法,它们各有优缺点。线性搜索适用于未排序的数组,实现简单;而二分搜索适用于已排序的数组,效率更高。在实际编程中,选择合适的搜索算法可以大大提高代码的性能和可读性。希望本文对你有所帮助!如果你对搜索算法有更多问题,欢迎在评论区留言讨论。
2025-03-30 23:18:01
754
原创 C++中的搜索算法实现
线性搜索和二分搜索是两种常见的搜索算法,它们各有优缺点。线性搜索适用于未排序的数组,实现简单;而二分搜索适用于已排序的数组,效率更高。在实际编程中,选择合适的搜索算法可以大大提高代码的性能和可读性。希望本文对你有所帮助!如果你对搜索算法有更多问题,欢迎在评论区留言讨论。
2025-03-30 23:14:31
279
原创 蓝桥杯第十六届模拟赛——基础细节考频分析
详解floor函数、ceil函数和round函数1.floor()功能:把一个小数向下取整如果数是2.2 ,那向下取整的结果就为2.000000如果数是-2.2 ,那向下取整的结果就为-3.000000原型:double floor(doube x);返回值:成功:返回一个double类型的数,此数默认有6位小数无失败的返回值注:带有强制转化功能,但与int(sqrt(n))有区别sqrt()意思是平方根函数,计算一个非负实数的平方根。floor对正负参数皆是向下取整,而强制转化是向零取整。
2025-03-30 22:09:42
1541
原创 Java基本类型深度解析:从内存模型到高效编程实践
Java作为强类型语言,定义了(Primitive Types),这些类型直接存储数据值而非对象引用,是构建Java程序的基础。
2025-03-30 20:55:53
395
原创 Java引用类型深度解析:从强引用到虚引用的完整指南
Java的引用类型是内存管理的核心机制,直接影响对象的生命周期和垃圾回收(GC)行为。合理使用不同引用类型可以实现和等高级功能。
2025-03-30 20:39:35
749
原创 C++ utility头文件深度解析:从pair到移动语义的完全指南
作为C++标准模板库(STL)的核心组件之一,<utility>头文件提供了和,是构建高效C++程序的基石。本文将从源码层面对其核心功能进行深度剖析。
2025-03-30 19:43:54
927
原创 前缀和算法:从暴力遍历到高效查询的蜕变(C++实现)
前缀和(Prefix Sum)是算法领域的,通过一次O(n)的预处理,将区间查询的时间复杂度从O(n)优化至O(1)。其核心思想是,适用于频繁的区间查询场景。
2025-03-24 19:26:56
611
原创 动态规划:从暴力递归到多维优化的算法进化论(C++实现)
动态规划(Dynamic Programming)不是简单的递归优化,而是**计算思维范式的革命性转变**。其核心价值在于通过**状态定义**和**决策过程形式化**,将指数复杂度问题转化为多项式复杂度。本文将揭示动态规划的四个认知层级,并提供六大领域的深度实践方案。
2025-03-23 23:30:35
485
原创 快速求出质数
记忆化搜索(Memoization)不是简单的缓存技术,而是。它通过存储子问题的解,将指数级复杂度降至多项式级,在LeetCode动态规划类问题中应用率高达78%。本文将从量子物理的视角揭示记忆化搜索的本质,呈现5种高阶应用模式。
2025-03-23 20:00:21
163
原创 记忆化搜索:用时光保险箱破解重复计算的魔法(C++实现)
记忆化搜索(Memoization)不是简单的缓存技术,而是。它通过存储子问题的解,将指数级复杂度降至多项式级,在LeetCode动态规划类问题中应用率高达78%。本文将从量子物理的视角揭示记忆化搜索的本质,呈现5种高阶应用模式。
2025-03-23 14:09:23
793
原创 Flood Fill算法:从图像处理到迷宫求解的全能战士
Flood Fill算法是计算机图形学中的经典算法,用于填充封闭区域。它像一支魔法画笔,能在图像处理、游戏开发、迷宫求解等领域大显身手。本文将深入探讨Flood Fill的核心原理,并通过实战案例展示其强大功能。
2025-03-21 00:54:18
347
原创 并查集:从连通性检测到动态合并的算法艺术
在算法竞赛和工程实践中,并查集(Disjoint Set Union,DSU)是解决的终极武器。它能在近乎常数时间内完成集合的合并与查询操作,广泛应用于社交网络、图像处理、编译器优化等领域。本文将深入剖析并查集的核心原理,并通过实战案例揭示其精妙之处。
2025-03-21 00:50:03
347
原创 深入理解DFS:从迷宫探险到动态剪枝的征服之路(C++实现)
深度优先搜索(DFS)不是简单的暴力穷举,而是一种。本文将颠覆传统教学视角,从时空维度重构DFS认知体系。
2025-03-20 20:32:06
758
原创 穿透递归的本质:从无限梦境到可控魔法的蜕变之路
在计算机科学的宇宙中,递归是最接近魔法本质的编程范式。它像一面镜子中的镜子,引导我们通过自我相似性破解复杂问题。和。本文将用全新的维度解析递归本质。
2025-03-20 20:19:36
771
原创 正则表达式:文本处理的瑞士军刀
它通过定义一种特殊的字符串模式,可以快速地在文本中搜索、替换或提取符合特定规则的内容。正则表达式广泛应用于编程、文本编辑、数据处理等领域,是每个开发者必备的技能之一。正则表达式是文本处理的利器,但也需要谨慎使用。掌握其核心语法和优化技巧,可以让你在数据处理中事半功倍!正则表达式(Regular Expression,简称。将部分模式括起来,可以提取匹配的子内容。库,支持正则表达式操作。在目标文本中查找符合模式的内容。,它定义了需要匹配的文本规则。如果不需要捕获组的内容,使用。正则表达式的核心是一个。
2025-03-19 23:07:04
736
原创 蓝桥杯竞赛日期问题终极指南:从暴力枚举到数学优化
在蓝桥杯竞赛中,日期类问题每年必现,且占据重要分值。本文将从暴力解法入手,逐步揭示高效解决日期问题的核心技巧。
2025-03-19 17:24:56
697
原创 如何用贡献法破解90%的数组难题?5大经典案例深度解析
贡献法之所以能成为解决数组问题的利器,关键在于它跳出了传统的整体计算思维,转而关注每个元素的个体价值。这种思维转换带来的不仅是效率的提升,更是一种分析问题的新视角。掌握贡献法后,再看LeetCode中的Hard题目,会发现它们不过是若干经典模式的排列组合。
2025-03-19 08:15:00
794
原创 对于memset(b, 1, sizeof b)赋值为16843009情况
会将b的每个字节设置为1,而不是将每个元素设置为1。对于非字节类型(如intfloat等),memset的行为可能会导致意外的结果。如果需要初始化数组或结构体,建议使用循环赋值、std::fill或初始化列表。
2025-03-18 22:26:56
449
原创 vector<int> p(1, 1)
是一种常见的初始化vector的方式,表示创建一个包含指定数量元素且每个元素都初始化为指定值的vector。
2025-03-18 22:09:24
199
原创 深入解析计算机组成原理:从硬件架构到程序运行的本质
理解计算机组成原理,就像获得了一把打开底层世界的钥匙。通过perf分析CPI(Cycles Per Instruction)查看CPU缓存命中率检测分支预测失败率定位内存带宽瓶颈这,就是硬件素养带来的降维打击能力。在软硬件协同优化的时代,这种能力将成为区分普通开发者与顶尖工程师的关键所在。
2025-03-18 11:53:32
637
原创 深入理解多路归并算法:从理论到实践
多路归并算法是处理多个有序序列的高效工具,广泛应用于外部排序、数据库操作和分布式计算等领域。通过最小堆(优先队列),我们可以高效地实现多路归并,时间复杂度为 (O(nk \log k)),其中 (n) 是序列长度,(k) 是序列数量。本文将深入探讨多路归并算法的核心思想、实现方法以及实际应用,并通过代码示例帮助读者更好地理解和掌握这一算法。多路归并算法是归并排序的扩展,用于将 (k) 个有序序列合并为一个有序序列。与传统的两路归并不同,多路归并可以同时处理多个序列,从而提高合并效率。:shmily_六七。
2025-03-18 11:50:34
753
原创 priority_queue实现最小堆(C++代码演示)
是一个最大堆,但可以通过自定义比较函数或使用。实现最小堆,并解决多路归并问题的。在 C++ 中,可以使用。来将其转换为最小堆。
2025-03-18 11:41:40
379
原创 多路归并算法
的扩展,适用于需要合并多个有序序列的场景,例如外部排序(External Sorting)或数据库中的多路归并连接(Multiway Merge Join)。是一种将多个有序序列合并为一个有序序列的算法。:合并 (k) 个有序链表为一个有序链表。以下是使用最小堆实现多路归并的。
2025-03-17 18:44:09
440
原创 在处理欧拉函数时如何使用逆元
在计算欧拉函数时,如果 (n) 是质数,那么 (\phi(n) = n - 1),这是直接的结果。然而,当 (n) 是合数时,我们需要处理分母中的质因数 (p_i)。在编程实现中,如果我们需要在模 (M) 下计算欧拉函数(例如在密码学中),可以使用。来处理分母中的 (p_i)。这是因为在模运算中,除法需要通过乘法逆元来实现。为了高效计算 (\phi(n)),尤其是在编程实现中,我们可以利用。
2025-03-17 13:26:07
552
原创 数论——欧拉函数
对于正整数 (n),欧拉函数 (\phi(n)) 定义为:\phi(n) = \text{小于或等于 } n \text{ 且与 } n \text{ 互质的正整数的个数}其中,
2025-03-17 12:18:50
996
原创 五大基础算法——递归算法
是一种通过函数调用自身来解决问题的算法思想。它将问题分解为规模更小的子问题,直到子问题可以直接解决,然后逐步合并子问题的解,最终得到原问题的解。
2025-03-16 23:13:08
286
原创 五大基础算法——模拟算法
是一种通过直接模拟问题描述的过程或规则来解决问题的算法思想。它通常用于解决那些问题描述清晰、步骤明确、可以直接按照规则逐步实现的问题。
2025-03-16 23:10:08
325
原创 双指针算法
双指针算法是一种通过使用两个指针(索引或引用)在数据结构中有序移动来高效解决问题的技巧。它常用于数组、链表等线性结构的问题,能显著优化时间和空间复杂度。
2025-03-16 22:54:51
570
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人