- 博客(14)
- 收藏
- 关注
原创 从 “小蓝的活动日” 学透二分查找 + 容斥原理:高效解决第 k 个倍数问题
本文提出了一种基于二分查找和容斥原理的高效算法,用于计算多个数倍数的并集中第k个元素。针对小蓝假期活动安排问题,通过容斥原理精确计算指定区间内的活动日数量,并利用二分查找快速定位第k个活动日。算法包含三个关键模块:快速计算最大公约数(gcd)和最小公倍数(lcm)、基于容斥原理的活动日计数函数(activetime),以及二分查找框架(solve)。该方法将时间复杂度从暴力枚举的O(k)优化至O(log(k·min(x,y,z))),能高效处理k=10^9的大规模数据。文章详细解释了算法实现细节和设计原理,
2025-10-31 22:27:15
654
原创 题解 P13498 「Cfz Round 6」Yumemi —— 可爱的数字判断
本题的核心是处理极大数与避免乘积溢出。通过 “字符串存储 + 特殊情况处理 + 提前终止” 的思路,高效完成了 “可爱数字” 的判断。这类问题的通用思路是:将数值问题转化为字符串处理,并利用逻辑优化减少不必要的计算。
2025-08-31 20:56:15
226
原创 【NOIP2003 普及组】P1042 乒乓球 —— 两种赛制的比分统计解析
本题的核心是 **“多状态并行处理”**—— 同时维护两种赛制的得分状态,并准确判断 “局结束条件”。通过将 “得分跟踪”“条件判断”“结果存储” 分离,代码逻辑清晰且易维护。这类 “多规则并行统计” 的问题,适合用多个变量分别跟踪不同规则的状态,最后统一聚合结果。通过本题,也能加深对 “逻辑判断” 和 “结果格式化输出” 的编程实践理解。
2025-08-30 19:04:09
473
原创 平面坐标变换的高效处理:前缀数组与矩阵变换
给定一系列平面坐标变换操作(拉伸 k 倍或旋转 θ 弧度),需要快速回答多个区间查询:计算坐标 (x,y) 经过指定区间操作后的新坐标。
2025-04-01 22:59:01
289
原创 基于前缀最大值数组反推原数组和的最值问题
本题通过对前缀最大值数组的分析,巧妙地利用数组的特性来解决问题。在解决这类问题时,关键在于深入理解题目所给出的条件和定义,通过对条件的合理运用和推理,找到解题的突破口。同时,借助 C++ 的 STL 库,如vector和set,可以简化代码的实现过程,提高代码的效率和可读性。希望这篇文章能够帮助大家更好地理解这道题目,也希望大家在今后的算法学习中,能够举一反三,灵活运用所学知识,解决更多复杂的问题。
2025-03-26 19:28:10
372
原创 专业级csp认证第一题的思考
从显式计算前缀乘积到隐式逆向分解的优化过程,体现了逆向思维在算法设计中的重要性。通过深入分析m的数学结构,我们可以避免冗余计算,写出更简洁高效的代码。这一思路在类似进制转换、多项式分解等问题中也有广泛应用。
2025-03-21 22:03:11
459
原创 洛谷 P1551 题解:亲戚问题与 BFS 算法的巧妙运用
通过使用 BFS 算法,我们可以有效地解决洛谷 P1551 亲戚问题。BFS 算法在处理图的连通性问题上具有很好的效果,能够清晰地找出图中的各个连通分量。在实际应用中,我们可以根据具体问题的特点,对算法进行优化,以提高效率。同时,对于这类图论问题,理解图的基本概念和常用算法是非常重要的。希望这篇题解能够帮助你更好地理解和解决洛谷 P1551 问题,也希望你能在后续的学习中不断掌握更多的算法知识。
2025-03-17 16:35:15
425
原创 字符串匹配的两种经典实现:暴力匹配 vs 滚动哈希
字符串匹配是计算机科学中的经典问题,在搜索引擎、文本编辑、生物信息学等领域都有广泛应用。本文将用 C++ 实现两种经典算法,并分析其优劣。
2025-03-15 23:15:16
684
原创 基于Trie树的字符串检测系统实现解析洛谷p2580答案解析
本文我们将深入解析一个基于Trie树实现的字符串检测系统,该系统能够高效处理用户注册时的三种状态检测:合法新用户(OK)、重复用户(REPEAT)和非法用户名(WRONG)。| 构建 | O(N*L) | O(N*L) |1. **存储优化**:对于固定字符集(如仅小写字母),可用数组替代map。**现象**:当先插入长字符串后插入其前缀时,前缀无法被识别为有效字符串。3. **前缀处理**:修复当前版本无法识别前缀的问题。- `repeat`状态位避免重复字符串的重复计算。
2025-03-11 20:23:26
901
原创 KMP 算法详解:高效字符串匹配的核心技术
KMP 算法通过预处理模式串的 LPS 数组,实现了线性时间复杂度的字符串匹配。掌握其核心思想(最长公共前后缀的利用)和实现细节(边界条件处理),可以有效解决各种字符串匹配问题。在实际应用中,建议结合具体场景选择合适的字符串匹配算法。
2025-03-08 21:50:09
358
原创 P8218 【深进1.例1】求区间和(前缀和算法)
运行y问题描述: 给定一个长度为n的数组arr,实现一个算法,计算区间[i, j]的和,其中0 <= i <= j <= n-1。解释: 给定数组arr为[1, 2, 3, 4, 5],前缀和数组Sum为[0, 1, 3, 6, 10, 15]。然后,对于给定的区间[i, j],区间和可以通过Sum[j] - Sum[i-1]来计算。对于区间[0, 2],其和为6,计算方式为Sum[3] - Sum[0] = 6。对于区间[1, 3],其和为9,计算方式为Sum[4] - Sum[1] = 9。
2024-10-28 13:56:21
260
原创 算法笔记 快速幂
我们很自然地想到可以把它拆分为 2(1000)2⋅2(10)2 . 实际上,对于任意的整数,我们都可以把它拆成若干个 2(100...)2 的形式相乘。而这些2(100...)2,恰好就是 2的1 次幂、2的2次幂……注意.这个ans在这里挺重要的,如果没有一个变量去记录a的n/2次幂.写成return lpow(a,n/2)*lpow(a,n/2)则会降低算法的时间复杂度.还是2的10次方,但这次,我们把10写成。101的最后一位是1,所以a^2这一位是需要的,10的最后一位是0,跳过,右移,自乘。
2024-10-09 21:32:20
647
1
原创 upload-labs上传攻略(前10关)速通版
方法二,先将php文件格式改为jpg格式,在上传时,用burp进行拦LW9wZW5pbnN0YWxsLXBiLTEyOTQ3Nzk2NTA2MjQ0LQ。由于那个.htaccess文件,所以这里的jpg实际上就是php文件,因此不用改,和第九关有区别。1打开phpstudy,找到MySQL管理,打开配置文件后,双击httpd-conf。方法一,在网页页面,按f12,打开开发者选项,打开设置,将图片位置出jpg,改为php,发送封包即可。上传php文件 抓包后在php后点空格点即可通关。
2023-11-23 11:39:08
41079
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅