自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

纯新手

菜鸟努力奋斗

  • 博客(24)
  • 收藏
  • 关注

原创 三分算法:单峰函数极值

三分算法的实现和应用

2026-08-21 23:54:22 285 1

原创 反悔贪心(经典题目讲解)

本文讲解了反悔贪心的一道经典例题,并讲述了博主对题目的个人理解,及其题目背后的真实含义,贪心具体是实现的什么,并表明反悔贪心和费用流之间的关系(其实就是模拟费用流)

2026-08-20 18:00:09 362

原创 河南萌新联赛2026第(四)场:南阳理工学院

萌新联赛第四场补题

2026-08-19 16:42:14 436

原创 2026 ICPC沈阳邀请赛Vp补题

上上周的Vp,上周补题,这周才要发布

2026-08-18 14:40:16 1334 3

原创 河南萌新联赛2026第(三)场:郑州轻工业大学

牛客萌新联赛 补题+反思

2026-08-14 11:08:29 276 2

原创 Codeforces Round 1116 (Div. 2)

A题比较简单,后面三道都挺值得研究研究的

2026-08-10 19:02:42 385 2

原创 Codeforces Round 1115 (Div. 2)

CF开黑记录

2026-08-07 15:12:33 363 1

原创 河南萌新联赛2026第(二)场:河南农业大学(补题总结)

牛客萌新联赛补题+题解

2026-08-06 19:48:42 415 4

原创 Codeforces Round 1114 (Div. 3)

CF开黑(反思)

2026-08-05 19:29:08 168 6

原创 二维前缀和与二维差分、离散化技巧

本文详细介绍了二维前缀和与二维差分,同时讲解了多道经典例题,最后扩展了离散化知识

2026-08-04 16:13:20 743 5

原创 栈&队列(单调结构总结+题型拓展讲解)

本文主要讲解了萤火虫在学习单调栈和单调队列时做到的题目,以此展开讲解两个容器的逻辑和运用场景,同时也扩展了多种题型与知识,最终目的是单调结构的特点,对复杂数据如何线性处理和优化为O(n)复杂度等,(适合理解后再结合文中的例题加强理解并掌握)

2026-07-30 13:15:20 457 4

原创 河南萌新联赛2026第一场(补题总结)

本文总结了河南萌新联赛2026第一场的补题情况,题目难度划分为easy到hard不同等级,主要考察思维而非复杂算法。重点分析了6道题目: AI训练:签到题,直接循环计算n轮衰减后的值 强迫症:通过单调性判断最小操作次数,利用增量累加计算 小明的丹药:处理阴阳元素平衡问题,考虑奇偶情况调整 灵魂之塔:维护相邻元素奇偶性,分析删除位置的条件 神秘整数:利用最大公约数求所有满足条件的模数k 闯关游戏:拓扑排序结合小根堆解决 解题关键在于理解题意并找到合适的数学规律或算法模型。

2026-07-21 20:13:17 516 2

原创 2024 河北 CCPC【题解】

这篇文章摘要: 本文介绍了2024年河北CCPC程序设计竞赛的部分题解,包括签到题和中等难度题目: K题是简单签到题,直接输出指定字符串。 A题要求将字符串所有字符转换为'i'的最小操作次数。解法是统计除'i'外不同字符数量。 I题关于IP子网匹配,将IP转为二进制后比较前n位是否相同。 C题使用贪心算法选择最多人进入队伍,按区间条件排序后用优先队列处理。 G题通过字符串拼接处理环形问题,寻找最长合法子串。 J题涉及大数构造,利用数学公式和快速幂处理模运算。 各题解均提供了清晰的解题思路和C++实现代码。

2026-06-04 10:19:30 363 1

原创 洛谷 P1908 逆序对 【题解】

本文介绍了利用归并排序统计逆序对的方法。归并排序的核心思想是将数组不断对半拆分至单个元素,再两两合并有序子数组。在合并过程中,当右区间元素小于左区间时,可一次性计算左区间剩余元素与该右区间元素形成的逆序对数量(mid-i+1)。这种方法在排序的同时统计逆序对,时间复杂度为O(nlogn)。文章详细说明了拆分、合并过程,并给出了完整的C++实现代码,包括递归调用和逆序对计数的关键步骤。

2026-05-08 08:07:52 625

原创 C++ STL:map+ vector/string

本文摘要: C++ STL容器核心知识点总结:1)map基于红黑树实现,操作复杂度O(logn),支持[]、insert、emplace三种插入方式,提供find/count查找和erase删除,遍历时默认按键升序。2)vector动态扩容机制影响性能,建议预先reserve空间,二维vector应初始化行列,可用unique快速去重。3)string操作注意substr参数含义,append比+=高效,支持find/rfind查找,提供stoi/to_string等数字转换接口,字符串可直接比较字典序。这

2026-05-07 00:29:49 423

原创 洛谷P1886 单调队列 滑动窗口 题解

本文介绍了滑动窗口问题的单调队列解法。针对固定窗口大小k,需要高效求出每个窗口内的最小值和最大值。暴力解法复杂度为O(nk),而单调队列优化可将复杂度降至O(n)。核心思想是使用两个单调队列分别维护窗口内的最小值和最大值:最小值队列保持递增,最大值队列保持递减。每个元素只进出队列各一次,通过三步操作(删除越界队头、删除破坏单调性的队尾、当前元素入队)维护队列性质。当窗口形成后,队头即为当前窗口的极值。文中给出了详细的代码实现,包括队列初始化、窗口边界判断和单调性维护等关键步骤。

2026-05-07 00:04:16 386

原创 C++ STL 栈与队列

摘要:本文介绍了C++中stack栈和queue队列的核心概念与使用方法。stack遵循LIFO(后进先出)原则,支持push、top、pop等操作,常用于括号匹配、表达式求值等场景;queue遵循FIFO(先进先出)原则,适用于BFS、任务排队等场景。两者均不支持随机访问,操作前需判空。文章还对比了二者的特点,并简要提及优先队列(堆)的应用,如TopK问题。关键提示:使用top()/front()前需检查容器非空,避免程序崩溃。

2026-05-05 23:19:34 190

原创 C++ STL 容器详解:vector 与 string + sort排序

本文详解 C++ 刷题四大核心:vector 动态数组、二维数组、string 字符串、STL sort 排序。涵盖初始化、常用 API、遍历模板、实战用法,搭配代码示例。同时梳理新手易错点:大数组全局定义防栈溢出、size () 无符号陷阱、sort 左闭右开、字符矩阵标准读入,干货精简,适合入门与刷题复用。

2026-04-24 13:24:10 390

原创 gcd/lcm + 素数判断与筛法

本文总结了数论中常用算法:1. 最大公约数(gcd)采用欧几里得算法,通过辗转相除法实现,时间复杂度O(log min(a,b));2. 最小公倍数(lcm)通过gcd推导,注意防溢出写法;3. 素数筛法包含埃氏筛(O(nloglogn))和欧拉筛(O(n)),后者通过最小质因子筛选保证线性复杂度。文末强调了大数运算的溢出风险及不同场景下的筛法选择建议。这些算法在分数运算、同余问题和大规模素数筛选中具有重要应用价值。

2026-04-14 23:30:34 324

原创 位运算与快速幂:从原理到实战

本文介绍了位运算和快速幂的核心原理及应用。位运算直接操作二进制数据,包括与、或、异或等6种基本操作,可用于高效判断奇偶、快速乘除等。快速幂通过二进制拆分指数将计算复杂度降至O(logn),是处理大指数运算的关键技术,适用于数论、密码学等领域。文中提供了标准快速幂模板,强调步步取模防溢出,并指出常见误区。核心思想是将指数拆分为二进制形式,底数不断平方来优化计算。这两种技术是高效算法的重要基础。

2026-04-06 17:29:26 494

原创 贪心算法入门详解

贪心算法是一种通过局部最优选择寻求全局最优解的算法思想。其核心特点是每一步都采取当前最优决策,具有简单高效的优势(时间复杂度通常为O(nlogn)),但并非适用于所有问题。有效使用贪心算法需要满足两个前提:贪心选择性质(局部最优不破坏全局最优)和最优子结构。典型应用如"分发饼干"问题,通过排序和双指针策略实现最优分配。但像"零钱兑换"这类问题则不适合贪心,因为局部最优可能导致全局次优。实际应用中,建议通过排序制定贪心规则,并用反例验证策略有效性,避免错误使用。掌握贪心算法的关键在于准确判断问题特征。

2026-04-02 10:30:39 785

原创 前缀和与差分:入门掌握

前缀和与差分是解决区间查询和更新问题的核心算法。前缀和通过预处理数组实现O(1)的静态区间和查询,而差分则通过逆运算实现O(1)的区间批量更新。两种方法都采用"空间换时间"思想,将时间复杂度从O(n)优化到O(1)。在竞赛中,前缀和常结合哈希表统计满足条件的子数组,二维前缀和则用于求解固定大小子矩阵的最值问题。典型应用包括统计和为k的子数组数量、计算激光炸弹覆盖区域的最大价值等。这两种算法能有效处理大数据量问题,是算法竞赛中的必备技能。

2026-03-31 22:09:17 418

原创 从零理解二分查找:新手入门教程

二分查找是一种高效的有序数组查找算法,通过不断折半缩小查找范围,平均时间复杂度为O(logn)。其核心是维护左右边界和中间值,通过比较中间值与目标值来调整边界。C++实现时需注意边界条件和整数溢出问题。二分查找扩展应用是二分答案,用于解决"最大值最小化"等问题,关键在于设计判断函数check()。新手需注意数组有序性、边界收缩和区间定义等常见错误。二分查找适用于有序数据查询,二分答案则适用于优化问题求解。

2026-03-26 23:21:18 742

原创 算法复杂度(入门讲解)

算法复杂度分析是评估算法效率的核心工具,分为时间复杂度和空间复杂度。时间复杂度衡量算法执行时间随输入规模n的增长趋势,采用大O表示法,常见类型包括O(1)、O(logn)、O(n)、O(n²)和O(2ⁿ)。空间复杂度分析算法额外内存使用情况,同样关注增长量级。二者常存在权衡关系:时间优化可能增加空间消耗,反之亦然。分析时需关注最坏情况,通过加法规则(顺序执行)和乘法规则(嵌套执行)计算复杂度。实际应用中应优先优化时间复杂度,同时兼顾空间效率,按”常对幂指阶“的优先级选择最优算法。

2026-03-25 00:34:25 752 1

空空如也

空空如也

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

TA关注的人

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