- 博客(60)
- 收藏
- 关注
原创 【数学】约数个数-约数之和原理与代码实现模板
通过质因数分解,我们可以高效地计算一个数的约数个数和约数之和。这两个问题在算法竞赛中经常出现,掌握其数学原理和实现方法非常重要。
2025-04-04 10:37:32
173
原创 【动态规划】二分优化最长上升子序列
本题通过贪心+二分的方法,将最长上升子序列问题的时间复杂度从O(n²)优化到O(nlogn),能够高效处理大规模数据。关键在于维护一个单调递增的数组,并通过二分查找来快速确定每个元素的插入位置。
2025-04-03 23:29:31
461
原创 【动态规划】最长公共子序列模板
的最长公共子序列(LCS)。子序列不要求连续,但必须保持相对顺序。熟练掌握 DP 的状态表示和转移方程是解决此类问题的关键!的子序列的字符串的最长长度。个字符的最长公共子序列长度。我们需要找到两个字符串。的最长公共子序列长度。
2025-04-03 17:23:49
776
原创 【动态规划】最长上升子序列模板
本题是一个经典的动态规划问题,通过定义状态f[i]表示以第i个元素结尾的最长上升子序列的长度,然后通过状态转移逐步求解。最终结果是所有f[i]中的最大值。这种方法直观且易于理解,适合初学者掌握动态规划的基本思想。
2025-04-03 17:15:08
244
原创 【动态规划】P8638 [蓝桥杯 2016 省 A] 密码脱落
本题通过将原问题转化为最长公共子序列问题,巧妙地利用动态规划求解。理解回文串与反转字符串的关系掌握动态规划的状态转移方程正确处理字符串索引和边界条件这种将复杂问题转化为经典算法问题的思路,在竞赛编程中非常实用。
2025-04-03 16:57:22
280
原创 【算法板子】Kruskal算法求最小生成树
Kruskal算法是求解最小生成树的经典算法,通过贪心策略选择边并结合并查集高效判断连通性。该算法适合稀疏图(边数较少的情况),代码实现简洁高效。需要注意图的连通性判断和边数统计等关键细节。
2025-04-03 15:04:33
259
原创 【Acwing】Floyd求最短路模板
Floyd算法是解决多源最短路径问题的经典算法,虽然时间复杂度较高,但对于小规模图非常适用。其优势在于实现简单,能处理负权边,并且可以一次性求出所有点对的最短距离,适合查询密集的场景。
2025-04-03 14:50:54
329
原创 【Acwing】SPFA 判断负环模板
SPFA 算法是检测负环的有效方法,通过队列优化减少了不必要的计算。该算法适用于稀疏图,在大多数情况下效率高于 Bellman-Ford 算法。关键点在于理解负环检测的原理和队列优化的实现方式。
2025-04-03 14:46:59
270
原创 【Acwing】spfa求最短路算法模板
SPFA算法是处理带负权边最短路径问题的高效算法,相比Bellman-Ford有显著优化。正确初始化距离数组合理使用队列和标记数组优化处理大规模数据时邻接表的高效存储边界情况(如不可达)的判断处理。
2025-04-03 14:41:04
415
原创 【Acwing】bellman-ford 有边数限制的最短路
Bellman-Ford算法是解决有边数限制最短路问题的经典算法,尤其适用于含负权边的图。关键点在于理解松弛操作和备份数组的作用,以及如何处理无穷大的情况。
2025-04-03 14:33:06
322
原创 【Acwing】Dijkstra模板
Dijkstra算法是解决正权图最短路径问题的经典算法。当m ≈ n²时(稠密图),使用朴素Dijkstra更优当m << n²时(稀疏图),使用堆优化Dijkstra更优本题中,由于n≤500,两种方法都可以通过,但堆优化版本在处理更大数据量时更具优势。
2025-04-03 14:23:16
609
原创 【Floyd多源最短路】牛的旅行
本题考察了图论中最短路径算法的应用,特别是Floyd算法的使用。关键在于理解牧场直径的定义,以及如何通过连接两个牧场来最小化新牧场的直径。Floyd算法虽然时间复杂度较高,但对于N≤150的数据规模是完全可行的。
2025-04-03 12:39:45
205
原创 【算法数学篇】试除法求约数
试除法是求解约数问题的高效方法,通过只遍历到平方根来优化性能。本题的关键在于正确实现试除法,并注意处理完全平方数的情况。代码简洁高效,适合处理给定范围内的输入数据。
2025-04-02 23:27:59
390
原创 【算法中的数学】欧拉筛埃氏筛
埃氏筛实现简单,适合初学者理解欧拉筛效率更高,适合大数据量根据题目数据范围n≤10⁶,两种方法都能通过,但欧拉筛更优。
2025-04-02 21:26:06
864
原创 【递归】 题解:P8650 [蓝桥杯 2017 省 A] 正则问题
正确处理四种字符的语义维护好全局索引和递归状态适时比较和重置计数值这种方法既直观又高效,是处理嵌套结构问题的经典解法。
2025-04-02 16:12:58
366
原创 【算法中的数学】分解质因数
这道题考察了质因数分解的基本方法,使用试除法可以高效解决。从小到大尝试因数,保证找到的都是质数。完全除尽每个质因数。正确处理剩余的大质数情况。注意输出格式要求。
2025-04-02 15:38:13
293
原创 【dp + 裴蜀定理】P8646 [蓝桥杯 2017 省 AB] 包子凑数 题解
使用裴蜀定理判断解的有限性通过完全背包式的DP统计具体解代码简洁高效,体现了算法设计的精妙关键点在于理解数论原理并将其与动态规划相结合,这也是算法竞赛中常见的解题思路。List item。
2025-04-02 11:44:36
273
原创 【算法中的数学】裴蜀定理(Bézout’s Identity)总结
裴蜀定理是数论中的一个重要定理,描述了整数线性组合与最大公约数(GCD)之间的关系。掌握裴蜀定理能帮助解决许多数论和组合数学问题,是算法竞赛中的重要知识点!,设它们的最大公约数为。
2025-04-02 11:42:12
990
原创 【最小生成树】AcWing 1141. 局域网-题解
本题是典型的最小生成树问题,通过Kruskal算法可以高效解决。理解删除边权重和最大等价于保留边权重和最小使用并查集高效判断连通性正确处理边的排序和遍历顺序这种解法简洁高效,适合处理中等规模的图论问题。
2025-04-02 10:46:19
246
原创 AcWing 1140. 最短网络(最小生成树问题)
本题是典型的最小生成树问题,使用Prim算法可以高效解决。算法核心思想是"贪心",每次选择当前最优的边加入生成树。对于稠密图(边数接近完全图),Prim算法(尤其是这种邻接矩阵实现)是一个不错的选择。
2025-04-01 20:06:32
354
原创 二分答案 + P8800 [蓝桥杯 2022 国 B] 卡牌 - 题解
本题通过二分答案的方法高效地解决了最大套数问题。关键在于设计合理的检查函数来判断某个套数是否可行。算法的时间复杂度能够很好地处理题目给出的数据规模限制(n ≤ 2×10^5)。这种二分答案的思路在解决"最大化最小值"或"最小化最大值"类问题时非常有效,是算法竞赛中的重要技巧。
2025-04-01 14:58:18
527
原创 二分答案-P8647 [蓝桥杯 2017 省 AB] 分巧克力
本题通过二分查找将问题转化为验证性问题,显著提高了效率。确定二分查找的边界设计高效的验证函数处理边界条件和优化计算这种"二分答案+验证"的思路在解决最大值最小化或最小值最大化问题时非常有效。
2025-04-01 14:19:51
376
原创 题解:蓝桥杯 2023 省 B 接龙数列 - dp + 哈希map
本题通过动态规划高效地解决了最长接龙序列问题,关键在于将问题转化为以各个数字结尾的最长子序列问题。维护一个大小为10的dp数组即可在O(N)时间内解决问题。
2025-03-31 23:07:52
388
原创 题解:P8628 [蓝桥杯 2015 国 AC] 穿越雷区
正确处理交替规则的限制条件使用剪枝优化提高搜索效率注意回溯时状态的恢复对于n<100的规模,这种解法在合理时间内可以得到答案。
2025-03-31 23:03:45
372
原创 题解:P8667 [蓝桥杯 2018 省 B] 递增三元组 (暴力+二分)
本题通过排序和二分查找将时间复杂度从 O(N³) 优化到 O(N log N),是典型的利用排序和二分查找优化统计问题的例子。关键在于将三重循环分解为三个独立的一重循环,通过预处理(排序)和快速查询(二分)来大幅提升效率。
2025-03-31 22:45:07
609
原创 (BFS)题解:P9425 [蓝桥杯 2023 国 B] AB 路线
本题在传统BFS的基础上增加了字母交替的约束条件,需要巧妙设计状态来记录连续步数。正确计算下一步应该走的字母合理设计状态避免重复计算处理边界条件和终止条件。
2025-03-31 22:40:59
498
原创 算法:二维单调队列-P2216 [HAOI2007] 理想的正方形题解
本题通过两次单调队列处理(先行后列)高效地解决了二维滑动窗口的最值问题。这种方法避免了暴力解法的高时间复杂度,是处理此类问题的经典方法。关键在于理解单调队列如何维护窗口内的最值,以及如何将二维问题分解为两个一维问题处理。
2025-03-31 17:13:17
397
原创 单调队列-滑动窗口算法一篇学会-AcWing 154. 滑动窗口
维护队列的单调性及时移除不在窗口内的元素理解队列中存储下标而非值的好处本题的经典解法值得熟练掌握,类似的滑动窗口问题都可以考虑使用单调队列优化。
2025-03-31 17:06:30
328
原创 算法:高精度减法C++
高精度减法是处理大数运算的基础算法之一,核心在于模拟手工减法的过程,正确处理借位和负数情况。这道题目考察了对数组操作、边界条件处理的能力,是学习高精度算法的经典练习题。通过这道题目,我们可以掌握大数运算的基本思想,为后续更复杂的高精度运算打下基础。
2025-03-31 12:32:12
315
原创 算法:高精度加法C++
高精度加法是处理大数运算的基础算法,核心思想是模拟手工加法过程。通过逆序存储数字、逐位相加并处理进位,可以有效地解决大数相加的问题。这个算法是许多高精度运算(如减法、乘法等)的基础,掌握它对后续学习其他高精度算法很有帮助。
2025-03-31 12:31:00
517
原创 算法:单调栈 - P2866 [USACO06NOV] Bad Hair Day S
这道题展示了单调栈在解决"下一个更大元素"类问题中的高效性。通过维护一个单调递减的栈,我们可以在线性时间内解决问题,避免了暴力解法的O(n²)复杂度。关键在于理解单调栈的性质以及如何利用它来高效计算我们需要的信息。对于类似的题目,如果涉及到需要寻找某个元素左边或右边第一个比它大/小的元素,单调栈通常是一个很好的选择。
2025-03-31 09:36:39
509
原创 单调栈算法模板题
单调栈是解决"第一个比当前元素大/小"这类问题的有效工具。本题通过维护一个单调递增栈,保证了每个元素都能在O(1)均摊时间内找到左边第一个比它小的数。关键在于理解为什么可以安全地弹出那些不会影响后续结果的元素,从而保持栈的单调性。这种算法思想在很多场景下都有应用,比如计算直方图的最大矩形面积、求解滑动窗口最大值等问题。掌握单调栈的使用可以大大提高解决这类问题的效率。
2025-03-31 09:27:38
447
原创 高精度除法:高 / 低
高精度除法是基础算法中的重要内容,关键在于模拟手工除法的过程。这道题目通过将大数用字符串表示,然后逐位处理,实现了高效的计算。需要注意余数的传递和结果的逆序处理等细节问题。掌握这种方法可以解决许多涉及大数运算的实际问题。
2025-03-31 09:18:28
255
原创 高精度乘法:高精度 * 高精度
这道高精度乘法题目考察了对大数处理的能力,通过模拟手工乘法的方式,我们可以有效地解决这个问题。合理地存储大数(逆序存储方便计算)正确处理每一位的乘积和进位注意边界情况(如乘数为0的情况)掌握这种高精度计算方法对于处理大数运算问题非常重要,是算法竞赛中的基础技能之一。
2025-03-31 09:14:14
868
原创 题解:P1496 火烧赤壁(区间合并算法)
区间合并算法首先将所有区间按照左端点排序然后遍历排序后的区间,维护当前合并区间的起始点(st)和结束点(ed)如果当前区间的左端点大于维护区间的右端点,说明不重叠,将维护区间加入结果否则,更新维护区间的右端点为两者中的较大值计算总长度合并完成后,遍历所有合并后的区间,累加每个区间的长度(b-a)理解如何判断和处理区间重叠掌握排序预处理的重要性注意边界条件的处理(如最后一个区间)理解左闭右开区间的长度计算方式该解法高效且清晰,能够正确处理题目中的所有情况。
2025-03-31 08:26:42
367
原创 题解:AcWing 803. 区间合并
排序区间:首先将所有区间按照左端点从小到大排序。这样方便后续合并操作。合并区间:遍历排序后的区间,逐个检查当前区间是否可以与上一个合并的区间合并:如果当前区间的左端点大于上一个区间的右端点,说明没有交集,将上一个区间加入结果,并更新当前区间为新的待合并区间。否则,合并区间,右端点取两者的较大值。处理最后一个区间:遍历结束后,需要将最后一个待合并的区间加入结果。本题是区间合并的经典问题,通过排序和贪心算法可以高效解决。关键在于排序后逐个合并相邻区间,注意处理边界条件和最后一个区间。
2025-03-31 08:11:08
508
原创 P9246 [蓝桥杯 2023 省 B] 砍树-题解(最近公共祖先LCA + 树上差分)
倍增法预处理每个节点的2k2^k2k级祖先支持OlognO(\log n)Ologn时间查询任意两节点的LCA暴力法:简单直观但效率低,适用于小数据正解法利用LCA快速定位路径树上差分高效统计覆盖次数完美结合树结构的递归特性关键技巧:边权下放、差分标记、后序统计适用场景:需要高效处理树上路径覆盖统计的问题。
2025-03-30 22:46:39
705
原创 题解:树中两点间最短距离(最近公共祖先)
本题展示了如何利用LCA高效解决树中路径查询问题。预处理每个节点的深度和到根的距离使用倍增法快速查找LCA利用前缀和思想计算路径距离这种方法将每次查询的时间从O(n)降低到O(logn),非常适合处理大规模查询。
2025-03-30 17:39:16
310
原创 蓝桥杯 2023 省赛 B 组 I 题 - 景区导游题解(LCA最近公共祖先)
本题的关键在于利用LCA技术高效计算树上两点间距离,并通过预处理将查询时间优化到常数级别。这种方法适用于需要频繁查询树上路径问题的场景。
2025-03-30 17:02:41
396
空空如也
Qt下载显示哈希验证失败,求解
2024-05-22
iPad 的CodeAPP,怎么运行代码啊,感觉要用VS那一套,但我不会呀
2024-03-10
TA创建的收藏夹 TA关注的收藏夹
TA关注的人