<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[peterJr的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/peterJr</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; peterJr]]></copyright><item><title><![CDATA[CSP-J/S 2025 游记]]></title><link>https://blog.youkuaiyun.com/peterJr/article/details/154447916</link><guid>https://blog.youkuaiyun.com/peterJr/article/details/154447916</guid><author>peterJr</author><pubDate>Wed, 05 Nov 2025 16:54:08 +0800</pubDate><description><![CDATA[CSP-J/S 比赛总结：J组T1、T2顺利AC，但T3贪心算法可能有误，T4仅得部分分，总分约220-300。S组遭遇难题，T1暴力解，T2时间复杂度估算错误，T3、T4几乎无分，总分最高125分。与周围选手差距拉大，对自己的OI水平产生怀疑，可能面临竞赛生涯的终结。总体表现未达预期，反映出算法基础和临场发挥的不足。]]></description><category></category></item><item><title><![CDATA[树状数组的原理和简单实现：一种使用倍增优化并支持在线 O(log N) 修改、查询的数据结构]]></title><link>https://blog.youkuaiyun.com/peterJr/article/details/152376822</link><guid>https://blog.youkuaiyun.com/peterJr/article/details/152376822</guid><author>peterJr</author><pubDate>Wed, 01 Oct 2025 21:48:38 +0800</pubDate><description><![CDATA[本文介绍了树状数组的原理及其应用。首先通过lowbit函数的定义和原理，解释了如何利用二进制补码快速计算最低位的1。然后详细阐述了树状数组的实现原理，包括其存储结构和四个关键性质。接着给出了树状数组的核心操作：插入操作的add函数和求和操作的query函数的具体实现，它们都基于lowbit函数进行高效遍历。最后提供了完整的C++模板类实现。树状数组能够将区间查询和单点修改的时间复杂度优化到O(logN)，适用于解决大规模数据处理问题。]]></description><category></category></item><item><title><![CDATA[CSP-S 难度的数学方法讲解：分解质因数的运用、欧拉函数、逆元、组合数]]></title><link>https://blog.youkuaiyun.com/peterJr/article/details/150602025</link><guid>https://blog.youkuaiyun.com/peterJr/article/details/150602025</guid><author>peterJr</author><pubDate>Fri, 22 Aug 2025 12:25:08 +0800</pubDate><description><![CDATA[本文讲述了分解质因数、欧拉函数、逆元、组合数等数学知识，并分析了每个算法的时间复杂度，给出了多种不同的实现方式。]]></description><category></category></item><item><title><![CDATA[矩阵与高斯消元：数学算法在计算机领域的应用]]></title><link>https://blog.youkuaiyun.com/peterJr/article/details/149787305</link><guid>https://blog.youkuaiyun.com/peterJr/article/details/149787305</guid><author>peterJr</author><pubDate>Mon, 04 Aug 2025 13:54:42 +0800</pubDate><description><![CDATA[本文介绍了矩阵的基本概念和运算方法，重点讲解了高斯消元法在解线性方程组中的应用。主要内容包括：1）矩阵的定义和基本运算（加法、乘法、幂运算）及其实现；2）矩阵运算的性质（交换律、结合律、分配律）及证明；3）特殊矩阵单位矩阵及其性质；4）矩阵的行初等变换（对换、倍乘、倍加变换）。文章还提供了矩阵类的C++实现代码，展示了如何通过运算符重载实现矩阵运算，并利用快速幂优化矩阵幂运算。这些内容为理解和应用矩阵运算奠定了理论基础。]]></description><category></category></item><item><title><![CDATA[KMP 算法：解决字符串匹配问题的高效算法]]></title><link>https://blog.youkuaiyun.com/peterJr/article/details/149690548</link><guid>https://blog.youkuaiyun.com/peterJr/article/details/149690548</guid><author>peterJr</author><pubDate>Mon, 28 Jul 2025 14:19:50 +0800</pubDate><description><![CDATA[KMP算法是一种高效的字符串匹配算法，通过预处理模式串T生成next数组，记录最长公共前后缀信息，从而在主串S匹配时避免不必要的回溯，将时间复杂度从暴力匹配的O(nm)优化至O(n+m)。核心步骤包括：1) 计算next数组，利用前后缀性质动态调整匹配位置；2) 双指针遍历主串和模式串，根据next数组跳转失配位置。KMP算法还可扩展求解字符串循环节、不重叠子串匹配等问题，是处理大规模字符串匹配的基础算法。]]></description><category></category></item><item><title><![CDATA[最小生成树算法的解题思路与 C++ 算法应用]]></title><link>https://blog.youkuaiyun.com/peterJr/article/details/148593798</link><guid>https://blog.youkuaiyun.com/peterJr/article/details/148593798</guid><author>peterJr</author><pubDate>Wed, 18 Jun 2025 21:00:21 +0800</pubDate><description><![CDATA[本文介绍了两种最小生成树算法：Prim算法和Kruskal算法。Prim算法以点为对象，通过贪心策略逐步扩展生成树，适用于稠密图；Kruskal算法以边为对象，通过排序和并查集选择边，适用于稀疏图。文章通过具体示例详细说明了两种算法的执行过程，并提供了代码实现。最小生成树算法可用于解决连通图的最小边权结构问题，具有广泛的实际应用价值。]]></description><category></category></item><item><title><![CDATA[并查集：合并多个元素为一个集合的操作方法]]></title><link>https://blog.youkuaiyun.com/peterJr/article/details/148213496</link><guid>https://blog.youkuaiyun.com/peterJr/article/details/148213496</guid><author>peterJr</author><pubDate>Wed, 04 Jun 2025 21:37:14 +0800</pubDate><description><![CDATA[并查集是一种高效的森林状数据结构，主要用于处理合并集合和查询元素关系的操作，时间复杂度约为O(α(n))。其核心思想是将元素的父节点指向根节点，实现快速查找和合并。算法框架包括初始化、路径压缩优化和合并操作。典型应用包括判断元素是否同属一个集合以及查询集合大小。通过维护父节点数组和集合大小数组，并查集能高效解决依赖关系、连通性等问题。文章详细介绍了并查集的实现原理、代码框架及两种常见应用场景，为相关算法问题提供了优化解决方案。]]></description><category></category></item><item><title><![CDATA[初等数论基础知识详细解析（1）]]></title><link>https://blog.youkuaiyun.com/peterJr/article/details/147963462</link><guid>https://blog.youkuaiyun.com/peterJr/article/details/147963462</guid><author>peterJr</author><pubDate>Fri, 16 May 2025 19:58:12 +0800</pubDate><description><![CDATA[本文探讨了整数整除的若干性质。首先，定义了整除关系，并证明了其传递性：若 (a) 整除 (b) 且 (b) 整除 (c)，则 (a) 整除 (c)。其次，证明了线性组合性质：若 (a) 整除 (b) 和 (c)，则 (a) 整除 (bx + cy)。接着，通过数学归纳法证明了 (k) 个连续自然数的积能被 (k!) 整除。最后，通过小规模数据验证了费马小定理：若 (p) 为质数，则 (p) 整除 (n^p - n)。这些性质为整数理论中的进一步研究提供了基础。]]></description><category></category></item><item><title><![CDATA[基于 Dijkstra 最短路算法实现的次短路算法]]></title><link>https://blog.youkuaiyun.com/peterJr/article/details/147904872</link><guid>https://blog.youkuaiyun.com/peterJr/article/details/147904872</guid><author>peterJr</author><pubDate>Mon, 12 May 2025 21:42:51 +0800</pubDate><description><![CDATA[基于最短路算法实现的次短路算法，实现了同时计算最短路径长和次短路径长]]></description><category></category></item><item><title><![CDATA[递推、递归：将大目标分解为小目标的处理方法]]></title><link>https://blog.youkuaiyun.com/peterJr/article/details/147568381</link><guid>https://blog.youkuaiyun.com/peterJr/article/details/147568381</guid><author>peterJr</author><pubDate>Thu, 01 May 2025 12:39:10 +0800</pubDate><description><![CDATA[递推、递归是计算机算法设计中常用的集中基础算法。递推是从第一步开始，根据一个特定的规律或转移方程层层推进，直到推出答案所在状态位置为止。递归是从第一个可能性开始，枚举所有的可能性，并且根据这些可能性来找出最后的答案。递推经常被用作 DP 中实现状态转移，递归会常常被用作 DFS 枚举所有的可能性来找到正确答案，而分治的用途十分广泛，可以使用分治来获得更高的效率。关于时间复杂度，递推的时间复杂度通常为线型On，递归的时间复杂度通常为多项式级Onk或者指数级Okn或者阶乘级On。]]></description><category></category></item><item><title><![CDATA[扩展欧几里得算法的使用及简单证明]]></title><link>https://blog.youkuaiyun.com/peterJr/article/details/147340598</link><guid>https://blog.youkuaiyun.com/peterJr/article/details/147340598</guid><author>peterJr</author><pubDate>Sat, 19 Apr 2025 14:05:39 +0800</pubDate><description><![CDATA[扩展欧几里得算法（ExGcd）是基于传统欧几里得算法的实现，主要用于计算不定方程axbygcdabab∈Z的一组特殊整数解。类似于传统的欧几里得算法计算gcdab时将gcdab转化为gcdbamodb，扩展欧几里得算法通过类似的系数辗转相除法求出xy的一组解。如果我们不使用扩展欧几里得算法计算axbygcdabaxbygcdab移项，得axgcdab−by系数化为1，得xagcd。]]></description><category></category></item><item><title><![CDATA[多源最短路的两种做法和详细解析]]></title><link>https://blog.youkuaiyun.com/peterJr/article/details/147194748</link><guid>https://blog.youkuaiyun.com/peterJr/article/details/147194748</guid><author>peterJr</author><pubDate>Mon, 14 Apr 2025 21:36:02 +0800</pubDate><description><![CDATA[多源最短路的分析和讲解，讲解 Floyd 算法的原理和代码实现。]]></description><category></category></item><item><title><![CDATA[位运算：利用计算机的二进制计算原理进行运算的 C++ 运算符]]></title><link>https://blog.youkuaiyun.com/peterJr/article/details/147078305</link><guid>https://blog.youkuaiyun.com/peterJr/article/details/147078305</guid><author>peterJr</author><pubDate>Wed, 09 Apr 2025 21:40:36 +0800</pubDate><description><![CDATA[C++位运算详解，攻坚克难，解决算法学习中不可绕开的难点。]]></description><category></category></item><item><title><![CDATA[贪心算法的应用实例：子问题的局部最优解可推导出全局最优解]]></title><link>https://blog.youkuaiyun.com/peterJr/article/details/147013630</link><guid>https://blog.youkuaiyun.com/peterJr/article/details/147013630</guid><author>peterJr</author><pubDate>Sat, 05 Apr 2025 19:10:14 +0800</pubDate><description><![CDATA[贪心算法的例题实现，两种不同的贪心算法变形，分别给出贪心算法证明和代码实现。]]></description><category></category></item><item><title><![CDATA[单源最短路算法汇总、分析、整理、实现与简单变形（C++ 语言描述）]]></title><link>https://blog.youkuaiyun.com/peterJr/article/details/146885779</link><guid>https://blog.youkuaiyun.com/peterJr/article/details/146885779</guid><author>peterJr</author><pubDate>Tue, 01 Apr 2025 21:28:17 +0800</pubDate><description><![CDATA[单源最短路：Dijkstra(链接),Bellma-Ford,SPFA算法的思想、算法实现和简单变形，用C++语言描述，并对其中的重要引理给出简单证明]]></description><category></category></item><item><title><![CDATA[“24点”计算问题的算法分析和C++语言实现]]></title><link>https://blog.youkuaiyun.com/peterJr/article/details/146658108</link><guid>https://blog.youkuaiyun.com/peterJr/article/details/146658108</guid><author>peterJr</author><pubDate>Sat, 29 Mar 2025 13:37:22 +0800</pubDate><description><![CDATA[int a[8];//用来存储输入的数字int v[8];//用来在搜索过程中记录每个数字是否被使用过，避免重复搜索//记录运算过程中产生的表达式，其中的每个 string 记录这一次运算后的整个表达式string ans;//用来存储字典序最小的答案。]]></description><category></category></item><item><title><![CDATA[dijkstra算法详解]]></title><link>https://blog.youkuaiyun.com/peterJr/article/details/146461264</link><guid>https://blog.youkuaiyun.com/peterJr/article/details/146461264</guid><author>peterJr</author><pubDate>Sun, 23 Mar 2025 21:16:32 +0800</pubDate><description><![CDATA[Dijkstra 算法的详细解析，包括 O(N^2) 做法和 O(NlogN) 做法，在最深层次提取 Dijkstra 算法的原理并生动用图片分析]]></description><category></category></item><item><title><![CDATA[洛谷 P3612 [USACO17JAN] Secret Cow Code S 题解]]></title><link>https://blog.youkuaiyun.com/peterJr/article/details/146351726</link><guid>https://blog.youkuaiyun.com/peterJr/article/details/146351726</guid><author>peterJr</author><pubDate>Tue, 18 Mar 2025 20:50:45 +0800</pubDate><description><![CDATA[我们现在有一个无限的序列，这个序列由无限次翻转构成。个位置，再将这样做得到的新序列拼接在原序列的后面，这样得到一个长度为。通过分析样例，我们可以得知，假设一个元素位于新序列中的第。所以，我们可以使用模拟这个过程的算法，重复将。为常数） 时间复杂度的算法来解决这个问题。的序列整体向后移动一位，并将原序列的第。是否成立，若为否，则退出循环。的数据范围，可以在时间范围内输出答案。，那么这个元素位于原序列中的第。这样，这个过程的时间复杂度为。，这种方法结构的时间复杂度为。，所有算法的时间复杂度为。]]></description><category></category></item></channel></rss>