- 博客(72)
- 收藏
- 关注
原创 Codeforces Round 1043 (Div. 3)
本文摘要了三道编程题解: Homework题:字符串拼接问题。。 The Secret Number题:数学分解问题。The Cunning Seller题:最优交易问题。
2025-08-22 14:34:39
410
原创 树状数组【原理+详解+例题】
本文介绍了树状数组这一高效处理区间查询和单点更新的数据结构。树状数组基于二进制分层思想,具有O(N)空间复杂度和O(logN)时间复杂度的优势,适合处理前缀和/单点更新类问题
2025-08-22 13:50:46
803
原创 线段树:从入门到精通
本文介绍了线段树这一高效处理区间查询与修改的数据结构。线段树基于分治思想,通过二叉树结构将区间操作的时间复杂度优化至O(logn)。文章详细讲解了线段树的核心结构,包括节点定义、递归建树、点修改、区间查询等基础操作等。
2025-08-21 11:26:13
766
原创 河南萌新联赛2025第(六)场:郑州大学
解题涉及多个算法:L题使用二分查找满足条件的最大整数;E题通过字符串比较构造字典序最大数;I题模拟外卖订单处理;K题将问题转化为九进制处理;D题运用滑动窗口统计满足条件的区间;J题学习凸包算法并应用于凹多边形判断。整体展现了从基础到进阶的算法应用能力,也反映了备赛过程中的状态波动与成长。
2025-08-21 11:23:07
867
原创 【数据结构】并查集:从入门到精通
本文介绍了并查集这一高效的数据结构,主要用于处理集合合并与查找操作。详细讲解了并查集的基本概念、查找操作和合并操作。
2025-08-12 13:43:06
1150
1
原创 背包九讲【进阶版】(下)
本章带你了解:分组背包、有依赖的背包问题,其中物品间存在树形依赖关系,需结合树形DP和分组背包思想求解。此外,背包问题还可用于求方案数,通过维护额外的计数数组来记录最优解的数量。
2025-08-07 17:06:47
657
原创 河南萌新联赛2025第(四)场【补题】
本文摘要介绍了四道编程竞赛题目及解法: 完美序列:通过哈希表统计数字频次,遍历可能的和值组合,计算最长满足条件的序列长度。 合并石子:利用前缀和计算左右两侧石子移动步数,寻找最小总步数的合并方案。 封闭运算:验证集合中任意两数按位或运算结果是否仍属于原集合。 完美遗物:判断数的因数个数是否为非2质数,通过数论分解和素数筛法求解。 这些题目考察了哈希统计、前缀和优化、集合运算和数论分解等算法技巧,展现了编程竞赛中典型的问题解决思路。
2025-08-06 19:55:13
1021
原创 图论-最短路Floyd算法
Floyd算法是一种基于动态规划的全源最短路算法。它通过三重循环逐步更新节点间的最短路径:外层循环引入中间节点k,内层双重循环遍历所有节点对(i,j),比较直接路径和经过k点的间接路径。
2025-08-01 14:00:25
407
原创 Codeforces Round 1040 (Div. 2)【补题】
由于题目给出的这个数组序列一定会包含0,1,2,那么0一定会和1或2相邻,最坏的情况就是0只和2有相邻,所以,只要s的值比sum大于等于2,不管什么序列怎样的排列顺序一定会有符合题意的走法,所以只需判断s-sum是否>1,另外需要特判如果sum>s直接输出原序列,如果sum=s输出-1.这题是个简单的思维题,根据题目所给,如果这个序列中有1我们就将它mex操作,这样整个序列的和就会+1,没有其他的操作能更优,因此只需考虑0的情况就行。
2025-08-01 10:22:46
480
原创 图论-最短路Dijkstra算法
本文详细介绍了Dijkstra最短路径算法。该算法基于贪心思想,通过维护距离数组和访问标记,逐步确定源点到各点的最短路径。文章从基础实现入手,解释了算法原理和步骤,并指出其无法处理负权边的局限性。
2025-07-31 14:27:50
474
原创 【补题】Codeforces Round 1037 (Div. 3)+ 181 (Rated for Div. 2)
本篇文章对Educational Codeforces Round 181 (Rated for Div. 2)和Codeforces Round 1037 (Div. 3)的一些题目进行了总结和补题,最后还包含容斥算法的用法
2025-07-24 16:09:34
936
原创 搜索【P1037+P1406+B3624+P2329】
这篇博客主要包含了一些搜索题的详细解答,一步一步分析,以及详细的代码解释,只要是怕自己忘记怎么写的了记录一下。。。
2025-07-24 11:07:00
1027
原创 河南萌新联赛2025第(二)场+【整除分块详解】
本篇文章包含一些 河南萌新联赛2025第(二)场的部分题解,以及一些题目相关知识的拓展题,比如整除分块,二进制的一些运用等。
2025-07-24 08:58:21
871
原创 递推与递归/DFS
文章摘要 本文介绍了几个经典递归和枚举算法问题。首先分析了跳台阶问题。然后讲解了三种枚举问题:指数型枚举(每个数选或不选)、排列型枚举(全排列)和组合型枚举(固定长度的子集),分别给出了DFS递归解法。
2025-07-21 10:31:37
685
原创 巧用Bitset!优化dp
本文主要介绍了bitset的用法,bitset的好处,以及如何用bitset去优化dp来节省时间和空间,并结合两个例题NC17193简单瞎搞题和NC276144小红组比赛非常详细的分析,希望对你有所帮助
2025-07-15 14:33:26
1049
原创 堆&优先队列(加强版)
!!!一万余字!!!带你从基本的定义、实现的原理、常见的用法到实践的解答,带你一步一步学会堆,通过丰富的例题带你熟练掌握优先队列的使用!!!
2025-07-13 13:46:26
464
2
原创 vector【例题训练】
本文总结了四道经典算法题的解题思路: 581题通过排序比较法找到无序子数组的边界,计算最短需要排序的区间长度;167题利用双指针技巧在有序数组中快速定位两数之和的索引;2401题运用滑动窗口和位运算寻找满足条件的优雅子数组;T3473题展示了三种解法(动态规划、优先队列、集合)求第n个丑数。文化节题目未给出详细解。 解题方法涉及排序对比、双指针、滑动窗口、位运算、动态规划等技巧,适用于处理数组排序、子数组查找、数字组合等问题。
2025-07-10 13:16:48
247
原创 C++ 栈(stack)的详细基本用法
C++中的`stack`是一种后进先出的容器适配器,提供`push()`、`pop()`、`top()`等基本操作,所有操作都在栈顶进行且时间复杂度均为O(1)。
2025-07-09 18:28:25
512
原创 队列queue和双端队列deque
本文介绍了队列和双端队列两种数据结构的基本概念和用法。通过C++代码示例展示了两种数据结构的基本操作,并用滑动窗口问题和切蛋糕问题作为例题,演示了如何利用双端队列解决实际问题。文章还提供了相关算法题目的链接,供读者进一步练习。
2025-07-07 18:51:31
809
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人