自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 一篇文章带你领略欧拉公式的美上:自然常数 e

本文从欧拉公式出发,深入探讨了自然常数e的数学本质。作者通过复利计算、泰勒展开等不同角度阐释e的定义,并创新性地将等比数列求和公式推广到矩阵运算领域。文章展示了如何用抽象思维理解数学概念,包括将积分视为操作符的独特视角。通过几何图示验证了向量旋转操作的收敛性,揭示了e^x在积分运算中的自洽特性。这种从具体到抽象的思维过渡,为后续探讨虚数单位i与欧拉公式的深层联系奠定了基础。

2025-11-20 20:50:07 944

原创 CSP-S 模拟赛十一总结

算法题解摘要 T1:简单枚举题 通过枚举起点并计算能延伸的最远位置来求解,时间复杂度低,代码简单。 T2:优化DP问题 将约束条件转化为最长子序列问题,使用动态规划解决。通过二进制特性优化,将时间复杂度从O(n²)降为O(256n)。 T3:图论与置换环 通过构建置换图并分析环的性质,证明最小交换次数等于总点数减环数。通过错位排列最大化环长来优化解法。 T4:动态规划优化 定义二维状态DP,使用滑动窗口优化转移过程,将时间复杂度从O(nk²)降为O(nk)。 各题均提供了详尽的解题思路和优化方法,涵盖枚举、

2025-11-19 19:56:41 525

原创 线段树的时间和空间优化

本文介绍了优化线段树实现的多种方法,主要包括: I/O优化 - 使用scanf/printf替代cin/cout、关闭流同步、实现快读快输、使用fread/fwrite高级优化 递归改递推 - 减少递归调用的性能开销 离散化 - 将大值域映射到小范围内,降低空间和时间复杂度 结构体优化 - 使用结构体代替单独数组,提高CPU缓存命中率 C++函数特性 - 利用inline、const等关键字进行编译器优化 这些优化技巧可以有效提升线段树的执行效率,特别是在处理大规模数据时效果显著。文章还提供了相关优化的具体

2025-11-17 20:58:19 938

原创 CSP-S 模拟赛十总结

本文包含三道编程题的解法分析: T1:给定数组求前k大子段和。通过将问题转化为前缀和与后缀和的组合,使用优先队列优化,时间复杂度为O(k log n)。 T2:树形DP问题,要求计算满足相邻节点数值差≥k的染色方案数。利用DP对称性质优化,将特殊处理部分限制在O(nk)范围内,时间复杂度O(n²k)。需注意k=0的特殊情况。 T3:题目内容未完整展示,但从代码可见涉及组合数学和模数运算,使用了预处理阶乘和逆元来优化计算。 三题均通过巧妙转化问题模型和利用数据结构/数学性质来优化时间复杂度,展现了典型的算法竞

2025-11-12 14:13:49 553

原创 MX 模拟赛九总结

本文总结了四道编程题目及解题思路:T1通过排序和双指针求最短距离;T2采用动态规划计算区间不对称值;T3运用组合数学分析圆上三角形数量;T4优化贪心策略求字符串中最多"bessie"数量。每道题都给出了关键思路和代码实现,涉及算法设计、数学推导和优化方法。

2025-11-12 11:02:30 651

原创 模拟赛(我也不知道第几场)总结

本文包含三道算法题解: LCS优化问题:利用贪心性优化LCS计算,通过预处理或二分查找实现O(m²)或O(m²logm)时间复杂度解法,适用于B串较短的情况。 最小环计数问题:采用BFS找最小环长度,通过分割思想统计环数,处理奇偶环差异,最终时间复杂度为O(n²)。 组合数学问题:将除法条件转化为线性方程,转化为背包问题求解,使用动态规划统计满足条件的方案数,模数为998244353。 三题均通过数学转化和算法优化解决原问题,展现了对动态规划、图论和组合数学的灵活运用。

2025-11-06 11:09:10 781

原创 线段树详解

本文介绍了线段树的基本概念和操作。首先通过二分查找思想引出线段树的单点查询功能,然后扩展到单点修改。重点讲解了区间查询和区间修改的实现方法:区间查询采用分治思想递归处理覆盖区间,区间修改引入懒标记(lazy tag)来提高效率。文中提供了详细的代码实现,包括查询、更新、pushdown和pushup等核心函数,并总结了线段树的三种经典应用模型:单点修改区间查询、区间修改单点查询、区间修改区间查询。线段树通过分治策略和懒标记技术,将操作时间复杂度优化到O(log n)。

2025-10-29 20:28:41 906

原创 CSP-S模拟赛八总结

该题要求统计在0到n范围内满足以下条件的数字x的个数: x是完全平方数 x的每一位数字都是偶数 解题思路是枚举所有可能的平方根i(i为偶数),计算i²并检查其各位数字是否全为偶数。时间复杂度为O(√n*位数),由于常数小,可以高效解决问题。代码实现中通过循环检查每个候选数的数字位,最终输出符合条件的数字个数。

2025-10-27 21:06:56 685

原创 CSP-S模拟赛七总结

这是一篇关于算法竞赛解题记录的文章摘要。文章记录了作者在比赛中被坑惨的经历,包含三道题目的详细解析: T1是一道组合计数题,通过统计比当前数小的数量并运用组合数学知识解决,给出了模数998244353下的计算代码。 T2考察数学思维,处理10^100-1个点间的路径问题。通过分析互质与非互质情况,提出了多种中转点策略(如最小质因数、2等),并给出了相应的数学证明和优化代码。 T3是道高难度题目,通过贡献分析推导出复杂公式,需要处理最大值和区间条件,最终拆分为多个可维护的前缀和项。 文章展示了作者在算法竞赛中

2025-10-26 20:48:22 713

原创 CSP-S模拟赛六总结

这篇文章主要讲解了三个算法题的解题思路: T1问题:通过前缀和与预处理技术,找到区间最大差值。方法是对每个位置i,计算s[i]与前缀最小值或后缀最大值的差。 T2问题:使用动态规划预处理每个格子能到达的步数,通过DFS遍历更新各点的合法终点数,最后统计满足条件的路径总数。 T3问题:根据n的奇偶性分类讨论,当n为偶数时分解为小正方形组合问题,奇数时转化为线性DP问题,处理不同尺寸矩阵的组合方式。 三题均通过数学分析和动态规划优化,将问题转化为可高效求解的形式。

2025-10-24 20:38:32 1196

原创 CSP-S模拟赛五总结(实际难度远低于提高组)

本文包含两题解: T1:最短路径问题,使用Dijkstra算法计算从起点到终点的最短路径。若路径长度≤K,直接输出所有点对;否则通过排序和二分计算满足条件的点对数。 T2:后缀表达式求值问题,用栈构建表达式树后处理反转情况。分情况讨论逻辑运算中的"与"和"或"操作,递归计算需要反转的最小节点数。 两题均涉及图论算法(Dijkstra)和数据结构(栈、树)的应用,重点考察最短路径计算和逻辑表达式处理能力。

2025-10-14 19:47:37 933

原创 Codeforces1058(Div.2) A至F题解

本文摘要:作者分享了四道编程竞赛题的解题思路和代码实现。A题通过排序去重找到最小MEX值;B题通过分析数组构造规律推导出原数组;C题通过二进制对称性判断数是否符合条件;D题则通过互动查询和逻辑推理确定数组元素。每道题都提供了清晰的解题思路和简洁的代码实现,展示了算法竞赛中的典型解题方法。

2025-10-13 20:26:35 944

原创 MX模拟赛四总结

这篇文章分享了四道编程题的解题思路和代码实现。第一题通过数学推导发现答案可直接计算为n²;第二题采用二进制枚举和贪心策略处理模数问题;第三题利用前缀和与模运算性质实现贪心解法;第四题通过动态规划统计满足条件的子串数量,并使用差分优化答案计算。整体展示了数学思维、枚举技巧和动态规划在不同题型中的应用。

2025-10-11 15:11:24 736

原创 MX 模拟赛三总结

这篇博客记录了作者在解决四个编程题目过程中的思考和解题过程。T1通过前缀和优化处理字符串变换问题;T2使用二分法求解最小化最大运动时间;T3在理解题意后通过枚举边和Tarjan算法处理图论问题;T4则通过排序和边界处理优化矩形区域判断。文章展现了作者逐步解决问题的思路,包含代码实现和关键优化技巧的说明。

2025-10-08 20:45:49 1070

原创 一篇文章带你走进类的世界(上)——类与对象

本文简要介绍了C++中类的核心概念,包括面向对象编程的四大特点(抽象、封装、继承、多态)和类的具体使用。重点讲解了类的成员类型(公有、私有、保护)、成员函数定义方式、构造函数(普通/复制/移动)和析构函数的作用,以及前向引用声明的应用场景。文章通过代码示例帮助理解类的基本语法和特性,为后续深入讲解继承和多态等高级特性打下基础。

2025-09-13 23:42:55 803

原创 MX 模拟赛二总结

这篇文章分享了5道算法题的解题思路和代码实现。T1是一道简单的水题;T2通过限制条件简化了单词搜索问题;T3通过循环和取模处理字符串问题;T4从暴力搜索优化到动态规划;T5则利用容斥原理和并查集解决集合划分问题。文章详细讲解了每道题的思考过程、算法选择以及代码实现的关键点。

2025-09-13 23:22:25 800

原创 MX模拟赛总结

本文摘要: T1讨论四舍五入题目中的编号规则问题,指出题目描述不清导致50分丢失,强调需注意输出格式细节。 T2提出两种解法:暴力DP(时间复杂度高)和优化后的三维DP(g[i][j]和f[i][j]记录最大值),并提及线段树优化思路。 T3通过二分将问题转化为判定性问题,利用双指针统计满足条件的数对,实现O(nlogn)的复杂度。 T4利用特殊数据范围(0≤a_i≤2),通过分析奇偶性特点,设计判断连通块点权和为k的有效方法。 四道题目均聚焦算法优化与特殊情况的处理,展示了不同解题思路和技巧。

2025-09-13 22:24:56 995

原创 CSP-S初赛模拟赛错误点与未知知识

主要用于计算 RMQ(Range Maximum/Minimum Query,区间最大 / 小值)类的问题,时间复杂度与空间复杂度均为。由于哈夫曼编码的特殊构造方式,我们可以得到一条性质:哈夫曼编码里不会出现一个编码是另一个编码的前缀的情况。FIFO(First In First Out)是一种先进先出的数据结构,常见的如队列。FILO(First In Last Out)是一种先进后出的数据结构,常见的如栈。初赛也快到了,最近做了几套模拟题,现在来整理一下下。森林,即若干棵树组成的集合,性质如这道题。

2025-09-09 17:32:32 639

原创 AtCoder Beginner Contest 420 A至G 题解

本文摘要: 该文章记录了5道编程题的解题思路和代码实现。A题通过取模运算确定月份;B题模拟投票过程计算得分;C题通过预处理优化查询操作;D题使用BFS解决迷宫问题,考虑状态转换;E题利用并查集高效处理连通性查询。每道题都给出了清晰的解题方法和完整的代码实现,涵盖了模拟、预处理、广度优先搜索和并查集等算法思想。

2025-08-25 20:47:02 1268

原创 DP大家族——关于DP的梳理

本文总结了动态规划(DP)的基本概念和实现方法,包括一维和二维DP的应用。DP的核心思想是利用已知状态推导新状态,主要实现方式为递推和递归(记忆化搜索)。文章通过斐波那契数列、最大连续子序列和(一维DP)、最长上升子序列(LIS)及其优化方法,以及二维DP中的“马拦过河卒”问题等经典例题,详细讲解了DP的解题思路和优化技巧。此外,还介绍了空间优化方法如滚动数组,并展示了不同场景下DP的具体应用,帮助读者逐步掌握动态规划的基础知识和解题策略。

2025-08-25 19:44:28 618

原创 Codeforces1043 A至F 题解

【摘要】 作者记录了一场编程比赛的解题过程:22:13登录Codeforces后,22:15在洛谷看到"今日忌睡觉"的提示。比赛开始后,22:35-22:41快速AC了A题(字符串拼接水题),22:42-22:46用数学方法解决了B题(因数分解)。23:02通过三进制分解AC了C1题,23:22在C2题中优化了C1的解法,利用西瓜购买次数的数学关系降低金币消耗。23:33开始研究D题,通过推导数字位数的数学公式(涉及等比数列求和)寻求O(t)解法,最终得出抽象但高效的计算方法。整个过程展

2025-08-22 23:58:30 807

原创 Manacher(马拉车算法)详解

马拉车算法(Manacher Algorithm)是一种在O(n)时间复杂度内求解最长回文子串的高效算法。它通过在字符间插入特殊符号(如#)统一处理奇偶长度回文串。算法的核心思想是利用回文串的对称性,通过已知信息优化计算:维护当前最右回文串的中心c和半径r[c],对于新位置i,根据其对称点j的信息快速确定初始半径,再暴力扩展。相比传统O(n^2)方法大幅提升了效率。该算法代码简洁,只需一次遍历即可找到最长回文子串。

2025-08-21 19:37:30 656

原创 ABC402 D题题解

本文提出了一种计算圆上割线交点数量的数学方法。通过分析平行割线的性质,证明了当两条割线与圆的交点编号之和对n取模相等时,这两条割线平行。基于此结论,文章给出了一个高效的算法:先统计每组平行割线的数量,再利用组合数学公式计算非平行割线的对数。该方法将问题转化为简单的模数统计和前缀和计算,时间复杂度为O(n)。代码实现简洁明了,适用于大规模数据计算。

2025-08-21 17:40:17 973

原创 CSP-S模拟赛四总结

本文摘要了两道编程竞赛题目及其解法。T1题要求处理内存限制条件下的排序问题,强调不能使用数组排序的直接方法。T2题探讨了动态规划优化策略,通过状态转移方程和前缀和优化,将DFS暴力解法提升为高效DP解法,最终使用滚动数组和前缀和优化实现O(n^3)复杂度。T3题则通过将数字分类为0/1/2三组,并构建三棵线段树来处理区间排序和查询问题,实现了高效的区间修改和单点查询。三道题目分别考察了内存优化、动态规划优化和数据结构应用能力。

2025-08-19 20:11:51 862

原创 CSP-S模拟赛三(仍然是难度远超CSP-S)

这是一篇关于算法竞赛中两道难题的解题记录。第一题T1使用并查集优化区间最值查询,通过按身高排序合并相邻区间来避免MLE问题。第二题T2是一道复杂的线段树应用题,需要维护奇偶性相同的区间并处理郁闷值计算,涉及贪心策略和数据结构操作。作者在解题过程中遇到了空间限制和算法实现上的困难,最终爆零,但详细记录了思考过程和部分代码实现。

2025-07-17 20:36:21 514

原创 字典树(Trie 树)详解

本文介绍了Trie树的基本概念和应用。Trie树是一种用于处理字符串前缀问题的树形结构,通过将字符串的字符作为边来构建树,每个字符串的末尾节点会被标记。文章通过图示和代码展示了Trie的构建过程,并对比了暴力解法与Trie解法在查询问题上的效率差异,说明Trie能有效降低时间复杂度。最后预告下一篇文章将讲解AC自动机。

2025-07-16 19:33:13 1053

原创 KMP 详解

KMP算法详解:一种高效的字符串匹配技术 KMP算法由Knuth、Pratt和Morris三位科学家提出,解决了传统暴力字符串匹配效率低下的问题。该算法通过分析模式字符串的最长公共前后缀,避免不必要的比较操作,将时间复杂度从O(nm)优化到O(n+m)。核心在于构建next数组,记录模式字符串的匹配失败时应该回溯的位置。文章详细讲解了暴力枚举法的缺陷、KMP算法的思想精髓、next数组的构建过程以及完整的KMP实现代码,并附有图解说明。该算法思想深刻,代码简洁优美,是字符串处理领域的重要突破。

2025-07-15 08:24:21 855

原创 CSP-S模拟赛二总结(实际难度大于CSP-S)

本文介绍了两个编程问题的解法。第一题采用状压DP优化最大团问题,通过预处理和固定基准点将复杂度从O(2^nn^2)降至O(2^nn),并进一步优化到可行范围。第二题针对不同子任务提供分层解法,包括直接计算、双指针和二分法,最终通过枚举差值(x-y)并利用单调性进行二分查找,解决了高次方程求解问题。文章强调了预处理和边界条件处理的重要性,特别是在处理大数运算时的细节控制。

2025-07-08 18:41:52 1213

原创 高斯消元法详解

高斯消元法是一种用于求解线性方程组的经典算法,通过矩阵变换将系数矩阵转化为上三角结构,最终实现方程求解。该算法不仅能解线性方程组,还可用于行列式计算和矩阵求逆。文章详细介绍了高斯消元的基本步骤,包括行变换、主元选取和回代过程,并分析了特殊情况(如主元为0)的处理方法。作者还提出了一种改进算法,通过全列消元和随机主元选择简化计算过程。时间复杂度均为O(n³),适用于计算机求解多元一次方程组。文末附有代码实现,展示了高斯消元在编程中的应用。

2025-07-04 21:16:21 1223

原创 CF1034赛后总结

本文总结了5道编程竞赛题目的解题思路与代码实现: A题:配对问题,发现每堆数量为4的倍数时Bob获胜,否则Alice胜,直接判断n能否被4整除即可。 B题:k>1时所有玩家都可能存活;k=1时只有最大值能存活,简单判断即可。 C题:通过比较每个元素与前缀最小值、后缀最大值的关系,判断该元素能否存活。注意初始化问题。 D题:爱丽丝的最优策略分析,当1的数量≤k时直接获胜,否则根据特定条件判断胜负。 E题:逆向思维,通过确定MEX值来反推满足条件的k范围,利用差分数组统计结果。 这些题目主要考察了数学思维

2025-07-02 20:53:21 916

原创 洛谷P4317 花神的数论题题解

摘要:题目要求计算1到N所有数的二进制1的个数乘积。通过数位DP思想,将二进制分解为多个2^n组合,利用杨辉三角统计不同1的个数出现的次数。预处理组合数后,按公式∏(i^dp[i])计算乘积,其中dp[i]表示二进制含i个1的数的个数。时间复杂度与二进制位数相关,适用于N≤1e15的大数据。代码实现包括组合数预处理、数位处理和快速幂计算,最终结果对1e7+7取模输出。

2025-07-01 20:34:48 604

原创 CSP-S 模拟赛一总结(T1、T2)

本文探讨了两道编程竞赛题目的解法与思考过程。 第一题(T1)考察数组变换操作,通过分析交点数量和重复数字存在性来判断数组能否通过特定操作变得相同。作者通过暴力枚举和图形分析发现关键规律,并提供了详细的证明过程。 第二题(T2)要求最小化人员位置差值的总和。通过数学推导将问题转化为寻找最优的位置分配,最终得出将人员安排在最左和最右端点的解决方案,并给出对应的代码实现。 两道题目均展示了从问题分析到数学建模、再到算法实现的全过程,体现了算法思维的重要性。

2025-06-21 23:32:00 824

原创 题解:CF2093C Simple Repetition

摘要:题目要求将数字n重复k次组成新数,判断是否为质数。当k=1时直接判断n是否为质数;当n=1且k>1时,仅k=2的情况为质数;其他情况下(n≠1且k>1)生成的数必定为合数。代码实现分别处理这些情况:通过素数检测函数处理k=1的情况,其他情况根据上述规则直接输出判断结果。

2025-06-17 16:27:24 582

原创 题解:CF2093B Expensive Number

题目要求将给定数字删除部分位数使其代价(数值除以各位数之和)最小。最优解是将数字变为一位非零数(代价为1),此时需要删除其他所有位。解法是找到从右起第一个非零位,计算删除其后所有位和该位前非零位的总数。代码遍历字符串实现这一逻辑,时间复杂度为O(n)。

2025-06-12 15:31:15 602

原创 点双连通分量,边双连通分量

本文介绍了图论中的两种连通分量算法。点双连通分量(v-dcc)定义为不含割点的极大连通子图,通过Tarjan算法识别割点(满足dfn[u]<=low[i]的非根节点或多子树的根节点),并用栈保存节点来划分点双。边双连通分量(e-dcc)则是极大不含桥的连通子图,其判定条件为dfn[x]<low[y],算法同样基于Tarjan,通过比较dfn和low值识别桥并划分边双。两种算法均采用深度优先搜索和栈结构实现分量划分,核心代码展示了具体的实现逻辑。

2025-06-03 16:07:21 750

原创 寒假学习笔记【匠心制作,图文并茂】——1.20拓扑、强连通分量、缩点

本文介绍了两种重要的图论算法:拓扑排序和强连通分量(SCC)。拓扑排序是将有向无环图(DAG)节点线性排序的算法,通过不断移除入度为0的节点实现。强连通分量则是图中极大强连通子图,Tarjan算法通过深度优先搜索和dfn/low数组标记来识别SCC。文章还介绍了缩点技术,即将SCC合并为单个节点构建新图,便于后续处理。这两种算法在解决图论问题时非常有用,尤其适合处理依赖关系、环路检测等场景。

2025-05-31 23:54:59 1366

原创 题解:AT_abc244_e [ABC244E] King Bombee

本文介绍了一道图上的动态规划(DP)问题,主要涉及求方案数。通过分析题目中的不定量,确定了DP的三维状态:当前所在的点、总长度和经过特定点X的次数。文章详细描述了状态转移方程的推导过程,并提供了AC代码的实现。代码中使用了邻接表存储图结构,并通过三重循环进行状态转移,最终输出结果。该问题展示了如何通过DP解决复杂的图论问题,适合对DP和图论有一定基础的读者学习。

2025-05-20 16:55:15 860

原创 重庆 ICPC 比赛游记

2025年5月9日至10日,作者参加了一场编程比赛。比赛前一晚,作者因激动而难以入眠,收拾了四本书和大量零食,但书基本没用。比赛当天,学校要求6:20集合,作者因睡眠不足状态不佳。7:20乘坐高铁,途中完成少量作业后与同伴刷视频。10:00抵达比赛地点,但比赛已开始。作者迅速进入考场,开局一小时成功解决A题和F题,但随后四小时未能再解出其他题目。赛后,老师请吃重庆火锅,作者对火锅赞不绝口。总结中,作者认为这是一次宝贵的历练,并决定不再与某位队友组队,同时强烈推荐重庆火锅。

2025-05-17 22:50:48 545

原创 题解:AT_abc245_e [ABC245E] Wrapping Chocolate

我们可以这么干:首先按照长排序(具体怎么排大家自己想),然后对于每一个巧克力的宽,我们在盒子中找到能包含它的,全部推入一个数组中,接着对这个数组二分找第一个能容下它的。那排序我们只能排序一个量,但题目中有长宽两个变量,我们怎么排序呢?这时,我们就需要 OI 中一个很重要的思想:化二维为一维。题目简化:给定每个巧克力和盒子的长宽,已知每个盒子只能放一块巧克力,并且必须保证巧克力能放下,求是否所有巧克力都能放入。,瞬间就想到了两个东西:二分和排序。因为二分就需要排序,所以这里肯定两种都用了。

2025-05-04 18:46:33 1051

原创 状压 DP 详解

状压 DP 其实约等于一个 DP 的小技巧,一般应用在处理一个或多个集合的问题中(因为状压 DP 的下标就是一个集合),而且在nnn太大的时候建议不要使用这种方法。(如果你不懂,那么就继续往下看。好吧你本来就不懂。

2025-05-02 22:09:57 1146

空空如也

空空如也

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

TA关注的人

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